为了账号安全,请及时绑定邮箱和手机立即绑定

从类方法函数调用变量到普通方法

从类方法函数调用变量到普通方法

MMTTMM 2022-01-05 20:10:33
我想从一个类方法中调用一个变量到同一个类中的不同方法:class A():    @classmethod    def b(cls):        cls.g = 5    def c(self):        if self.g < 1:            print("TestA")        else:            print("TestB")做的时候:x = A()x.c()我得到:AttributeError: 'A' object has no attribute 'g'我已经阅读并搜索了一个类似的案例,但没有找到。大多数处理从 init 方法调用变量,这在这里不适用。
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

如果你不.b()事先运行,你的.g就不存在,......根本没有。

__init__向您的类添加一个函数并.g在那里声明以确保它至少存在。


查看完整回答
反对 回复 2022-01-05
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您没有定义g为类的类属性A。这可以通过这种方式完成:

class A():
    g = 7

但是在您的代码中,您同时将其g视为实例 ( self.g) 和类变量 ( cls.g)。虽然这有效(self.g将参考cls.g),但可能会令人困惑。


查看完整回答
反对 回复 2022-01-05
  • 2 回答
  • 0 关注
  • 291 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号