实力方法使用类调用为什么报错
本帖最后由 isdkz 于 2024-4-20 19:08 编辑因为 13 不是 Person,也不是 Person 的实例,自然也就没有 age 属性了,所以你当然不能传 13 进去,修改如下:
class Person():
age = 18
def shilifangfa(self) :
print(self.age)
p = Person()
Person.shilifangfa(p)
# 或
Person.shilifangfa(Person) 本帖最后由 jackz007 于 2024-4-20 18:07 编辑
class Person() :
age = 18
@classmethod # 添加类方法声明
def fangfashili(cls , age = 18) :
cls . age = age
print(cls . age)
Person . fangfashili(15) jackz007 发表于 2024-4-20 18:04
我知道这样可以,我的意思是我那种为什么报错,背后的逻辑是什么有点搞不懂 lc88824 发表于 2024-4-20 18:06
我知道这样可以,我的意思是我那种为什么报错,背后的逻辑是什么有点搞不懂
背后的逻辑很简单,就是因为缺少这个声明,致使 fangfashili() 不允许被当作类方法进行调用。 因为你Person没有实例化(有self不实例化会报错),而且shilifangfa的self不是参数
页:
[1]