首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在类方法中调用自身参数内的变量

在类方法中调用自身参数内的变量
EN

Stack Overflow用户
提问于 2020-06-24 10:37:44
回答 3查看 48关注 0票数 0

我想知道我们是否可以在类方法中调用self中初始化的变量。例如:

代码语言:javascript
运行
复制
class ABC():
    def method1(self):
        self.var1 = '123'

    @classmethod
    def callvar1(cls):
        '''print var1'''

我想要实现相同的输出,如下所示:

代码语言:javascript
运行
复制
class ABC():

    var1 = '123'
    
    def method1(self):
        self.var1 = '123'

    @classmethod
    def callvar1(cls):
        print(cls.var1)

如何在callvar1中访问self.var1

EN

Stack Overflow用户

发布于 2020-06-24 10:49:33

类方法绑定到类本身,而不是类的特定实例,所以如果您试图访问类方法中的self.var1 (一个实例变量),您将不会有太多乐趣。

你最好的选择就是让这个方法不是一个类方法(取决于你的用例):

代码语言:javascript
运行
复制
>>> class ABC():
...     var1 = '123'
...     def method1(self):
...         self.var1 = '123'
...     def callvar1(self):
...         print(self.var1)
...
>>> b = ABC()
>>> b.callvar1()
123

尽管另一种选择是将类的实例传递给类方法:

代码语言:javascript
运行
复制
>>> class ABC():
...     var1 = '123'
...     def method1(self):
...         self.var1 = '123'
...     @classmethod
...     def callvar1(cls, inst):
...         print(inst.var1)
...
>>> b = ABC()
>>> ABC.callvar1(b)
123
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62546725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档