Python 属性错误:';人';对象没有属性';名称';
我不明白为什么我会在第13行Python 属性错误:';人';对象没有属性';名称';,python,class,methods,syntax-error,spyder,Python,Class,Methods,Syntax Error,Spyder,我不明白为什么我会在第13行 myperson.name.firstname='apple'AttributeError:'person'对象没有属性'name'似乎您希望在创建任何person对象时,将名称、眼睛和年龄属性设置为默认值。如果是这种情况,详细信息实际上应该替换为\uuuu init\uuu,例如: 班级人员: 定义初始化(自): self.name=name() self.eye=“[无眼]” self.age=-1 类的\uuuu init\uuuu方法定义创建对象时应如何初
myperson.name.firstname='apple'AttributeError:'person'对象没有属性'name'似乎您希望在创建任何
person
对象时,将名称
、眼睛
和年龄
属性设置为默认值。如果是这种情况,详细信息
实际上应该替换为\uuuu init\uuu
,例如:
班级人员:
定义初始化(自):
self.name=name()
self.eye=“[无眼]”
self.age=-1
类的\uuuu init\uuuu
方法定义创建对象时应如何初始化对象。您不需要显式调用此方法;而是在创建类的实例时自动运行:
#创建persion的实例,调用
#`person.\uuuu init\uuuu()`,并分配结果
#致“我的人”:
myperson=person()
现在,您应该能够引用和分配属性:
myperson.name.firstname='apple'
myperson.name.lastname='regmi'
myperson.name.firstname='cat'
类似地,name.full\u name
可能应该是name.\uuuuu init\uuuu
注意,python中的类通常使用TitleCase,因此该类通常被命名为
Person
;同样地,name
将是name
显然,您无法访问myperson.name
,因为您最初没有运行myperson.detail
,所以myperson.name
尚未定义。
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)