我是python的新手,我对大部分内容都有所了解,但我正在尝试理解课程而且我无法使代码工作。它根本没什么,只是为了帮助我理解它
class Phone(object):
def __init__(self, words):
self.words = words
def phones(self):
ph = ['Samsung', 'Apple', 'google', 'moto', 'LG']
a = Phone.phones(ph)
print a
我跟随Zed A. shaw的书lpthw
错误代码是
Traceback (most recent call last):
File "ex40.py", line 34, in <module>
a = Phone.phones(ph)
NameError: name 'ph' is not defined
答案 0 :(得分:3)
目前从类外部打印ph
是不可能的,因为它是一个局部变量,并在函数完成时被销毁。
要使外部世界可以访问它,您需要将其声明为self.ph
或从函数返回它:
class Phone(object):
def __init__(self, words):
self.words = words
self.ph = ['Samsung', 'Apple', 'google', 'moto', 'LG']
a = Phone("word1, word2")
print a.ph # ['Samsung', 'Apple', 'google', 'moto', 'LG']
class Phone(object):
def __init__(self, words):
self.words = words
def phones(self):
ph = ['Samsung', 'Apple', 'google', 'moto', 'LG']
return ph
a = Phone("word1, word2").phones()
print a # ['Samsung', 'Apple', 'google', 'moto', 'LG']
答案 1 :(得分:1)
此位错误a = Phone.phones(ph)
您必须先初始化类
a = Phone(['foo', 'bar'])
然后你可以去
print a.phones()
但那也不行!函数phones
不会返回任何内容
可能你想要它return ph
我猜你可能想要建立这样的东西:
class Phone(object):
def __init__(self, words):
self.words = words
def phones(self):
return self.words
a = Phone(['Samsung', 'Apple', 'google', 'moto', 'LG'])
print a.phones()