AttributeError:'person'对象没有属性'name'

问题描述 投票:0回答:1
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'

python class methods syntax-error spyder
1个回答
0
投票

似乎您希望在创建任何name对象时将eyeageperson属性设置为默认值。如果是这种情况,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'
© www.soinside.com 2019 - 2024. All rights reserved.