Python的新手--OO - 已经使用过程python一段时间了。我写了一个愚蠢的类和方法,并且无法调用我的方法:
class Jpd:
#attributes share data among class objects.
my_age = 26
def __init__(self, value):
#method-level attribute data.
self.my_age = value
def ageToRetireFrom(self ):
print self.my_age + 20
def ageToBuyHome(self):
print self.my_age + 5
retire = Jpd.ageToRetireFrom()
home = Jpd.ageToBuyHome()
如果我尝试调用我的文件example.py
,请执行以下操作:
>>> import example
>>> j = example.Jpd()
我明白了:
NameError: global name 'value' is not defined
我知道这是在抱怨我的value
属性未分配。有人可以帮我调用这个方法吗?
谢谢
答案 0 :(得分:1)
定义__init__
方法时,如果要创建新实例,将成为调用签名。因此,从您的示例中,您将使用:
j = example.Jpd(15)
建立一个15岁的新人。
答案 1 :(得分:1)
当您创建类Jpd
的实例时,应该是这样的:
j = example.Jpd(20)
因为您定义了__init__(self, value)
,因此您需要在创建班级实例时传递值