【问题标题】:How to access variables in a function from another function of same class? [duplicate]如何从同一类的另一个函数访问函数中的变量? [复制]
【发布时间】:2020-01-13 19:10:49
【问题描述】:

这是一个更好地解释我的问题的示例,

class T:
    def fn(self):
        rest = 'test'
        return rest
    def fn1(self):
        print(rest)

我想知道,是否有任何方法可以访问函数fn1 中函数fn 中定义的变量。

我环顾四周,发现我们可以通过在函数fn 中传递global rest 来使变量成为全局变量,如下所示,这样我就能够在函数fn1 中访问rest 变量

def fn(self):
    global rest
    rest = 'test'
    return rest

我想知道是否有任何其他方式可以访问属于同一类的多个函数中的变量。

非常感谢任何帮助,谢谢。

【问题讨论】:

标签: python python-3.x


【解决方案1】:

使用属性:

class TheClass:
    def __init__(self):
        self.rest = None

    def set_rest(self):
        self.rest = "test"

    def print_rest(self):
        print(rest)

instance = TheClass()
instance.set_rest()
instance.print_rest()

【讨论】:

  • 谢谢,这些是唯一的方法吗(即使用全局和使用属性)?
  • @user_12 是的,这些是显而易见的方法。局部变量的全部 point 是它们在函数之外是不可访问的。如果你想在你的类中的函数之间共享状态,那么明显的方法是使用属性,不要使用全局变量。
  • @juanpa.arrivillaga 谢谢,如果可能的话你能告诉我为什么我们不应该使用全局变量吗?
  • @user_12 长话短说:因为全局可变状态会导致代码组织不良并且难以追踪错误,尤其是当您的代码不断增长并且需要多人维护时。听从前人的智慧。
  • 我刚试过这个,我得到一个名称错误,说“休息”没有定义
猜你喜欢
  • 2014-10-28
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
相关资源
最近更新 更多