理解如何从方法中导入变量
假设我有这样的东西:
这是文件 tree.py:
class leaf():
def green():
x = 100
这是文件 view.py:
from tree import leaf.green
g = green()
print g.x
我该如何从子类中获取变量 green
呢?我知道如果是类的话,只需要:
这是文件 tree.py:
class leaf():
x = 100
这是文件 view.py:
from tree import leaf
class view():
g = leaf()
print g.x
我知道如果两个类在同一个文件里该怎么做,但我不明白在两个不同的文件里该怎么处理。
谢谢,
约翰
2 个回答
1
x
是这个方法内部的一个变量,也就是说,它不能被外部访问(至少不容易访问)。更糟糕的是,它只在方法运行的时候存在(方法结束后就会被删除)。
需要注意的是,你可以给一个方法(其实是任何函数)赋值一个属性:
class Leaf(object):
def green(self):
...
green.x = 100
print Leaf.green.x
但这可能不是你想要的(首先,你不能在方法内部把它当作局部变量来使用——因为它不是局部变量),而且实际上很少有用处(除非你有非常好的理由不这样做,通常情况下还是用类比较好)。
2
我觉得你问题的根本原因是你需要更多了解Python中的类是怎么工作的。幸运的是,Python文档里的教程有一部分专门讲类。
如果这些还不够,试试《艰难学Python》,做里面的练习会非常有帮助。