class Name():
def full_name(self):
self.firstname='[no name]'
self.lastname='[no name]'
class person:
def detail(self):
self.name=Name()
self.eye='[no eye]'
self.age=-1
myperson=person()
myperson.name.firstname='apple'
myperson.name.lastname='regmi'
myperson.name.firstname='cat'
print(myperson.name.firstname)
我不知道为什么我要在第13行myperson.name.firstname ='apple'AttributeError:'person'对象没有属性'name'
似乎您希望在创建任何name
对象时将eye
,age
和person
属性设置为默认值。如果是这种情况,detail
应该真正替换为__init__
,例如:
class person:
def __init__(self):
self.name=Name()
self.eye='[no eye]'
self.age=-1
类的__init__
方法定义了在创建对象时应如何初始化它们。您无需显式调用此方法。相反,当您创建类的实例时,它将自动运行:
# create an instance of persion, call
# `person.__init__()`, and assign the result
# to `myperson`:
myperson = person()
现在您应该能够引用和分配属性:
myperson.name.firstname='apple'
myperson.name.lastname='regmi'
myperson.name.firstname='cat'