尝试在python中使用装饰器时出现属性错误

问题描述

我在下面的代码中出现属性错误 这是结果

回溯(最近通话最近): 在第18行的文件“ C:/Users/fortu/PycharmProjects/telusko.py/inheritance.py” p1.name() AttributeError:'str'对象没有属性'name'

class Church:

    church = 'RCCG'

    def __init__(self,fname,lname):
        self.fname = fname
        self.lname = lname

    @classmethod
    def get_church(cls):
        return cls.church

    def name(self):
        print(f'{self.fname},{self.lname},member of ')

p = Church('John','Doe')
p1 = p.get_church()
p1.name()

解决方法

您的get_church方法返回一个string的{​​{1}},它被分配给RCCG。这就是为什么在调用p1时得到AttributeError的原因。

p1.name()

im试图在一行中打印fname lname和教堂名称RCCG

您必须对p1 = p.get_church() # p1 value is RCCG # above is equivalent to p1 = p.church # now when you do this `p1.name()` it's equivalent to doing "RCCG".name() # this is where you'll get an error 方法进行更改以包含name

self.church

然后从def name(self): print(f'{self.fname},{self.lname},member of {self.church}') 调用name方法。

p

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...