【问题标题】:Edit class from imported module从导入的模块编辑类
【发布时间】:2018-05-19 20:51:11
【问题描述】:

我有以下问题。我想从我刚刚导入的模块中编辑类的变量。我只能找到相反的方法。从主编辑模块。 我想要以下内容:

main.py:

class A:
     MyVar = 7
import a
print(MyVar) #I want to get 4

a.py:

 A.MyVar = 4

执行 main.py 时出现“NameError: name A is not defined”。

【问题讨论】:

  • A 不在a.py 的命名空间中。
  • 不在 main 的命名空间中?那我怎么添加呢?
  • 在这种情况下你会遇到其他问题

标签: python python-3.x


【解决方案1】:

我认为你应该这样做:

main.py:

if __name__ == '__main__':

    from a import A

    print(A.my_var) # 7

    A.my_var = 4

    print(A.my_var) # 4

a.py:

class A(object):
    my_var = 7

main.py:

if __name__ == '__main__':

    from a import A

    a_obj = A()

    print(a_obj.my_var) # 7

    a_obj.my_var = 4

    print(a_obj.my_var) # 4

a.py:

class A(object):
    def __init__(self):
        self.my_var = 7

【讨论】:

  • 确切地说:将定义 A的代码和使用 A的代码分开。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 2020-07-23
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
相关资源
最近更新 更多