无法访问 Python 中的内部 class 函数
Trouble accessing function of inner class in Python
我是 python 的新手
我正在学习如何使用 inner/nested 类。
我写了下面的代码。
我无法访问 display()
.
class Person:
def __init__(self,name):
self.name=name
self.dob=self.DOB
class DOB:
def __init__(self,dd,mm,yyyy):
self.dd=dd
self.mm=mm
self.yyyy=yyyy
def display(self):
return(self.dd)
p=Person('Surya')
p.DOB(11,22,3333)
p.DOB.display()
因为您的 display
函数在 class 中,您需要在尝试使用它之前初始化 class。你确实初始化了 class 但你没有在任何地方保存这个对象。
将最后几行更改为:
p = Person('Surya')
pDOB = p.DOB(11,22,3333)
print(pDOB.display())
你的 p.DOB
将构造一个新的 DOB
对象,但随后你将那个对象扔掉,因为你没有将该对象存储在变量中,等等。例如,你可以使用变量存储返回的 DOB
对象,例如:
p = Person('Surya')
<b>dob =</b> p.DOB(11,22,3333)
<b>dob</b>.display() # will return 11
通过使用 p.DOB
,您可以得到对内部 DOB
class 的引用,如果您随后调用 .display()
,则意味着没有 self
参数,因此错误。
我是 python 的新手
我正在学习如何使用 inner/nested 类。
我写了下面的代码。
我无法访问 display()
.
class Person:
def __init__(self,name):
self.name=name
self.dob=self.DOB
class DOB:
def __init__(self,dd,mm,yyyy):
self.dd=dd
self.mm=mm
self.yyyy=yyyy
def display(self):
return(self.dd)
p=Person('Surya')
p.DOB(11,22,3333)
p.DOB.display()
因为您的 display
函数在 class 中,您需要在尝试使用它之前初始化 class。你确实初始化了 class 但你没有在任何地方保存这个对象。
将最后几行更改为:
p = Person('Surya')
pDOB = p.DOB(11,22,3333)
print(pDOB.display())
你的 p.DOB
将构造一个新的 DOB
对象,但随后你将那个对象扔掉,因为你没有将该对象存储在变量中,等等。例如,你可以使用变量存储返回的 DOB
对象,例如:
p = Person('Surya')
<b>dob =</b> p.DOB(11,22,3333)
<b>dob</b>.display() # will return 11
通过使用 p.DOB
,您可以得到对内部 DOB
class 的引用,如果您随后调用 .display()
,则意味着没有 self
参数,因此错误。