了解如何从方法导入变量

时间:2011-01-26 17:22:31

标签: python variables

让我说我有这样的事情: 这是文件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

如果两个类都在同一个文件中,我理解如何做到这一点。但我不明白两个seprate文件。 谢谢,  约翰

2 个答案:

答案 0 :(得分:2)

我认为问题的根源在于您需要了解有关Python中的类如何工作的更多信息。幸运的是,Python docs has a section on classes中的教程。

如果这没有用,那么通过像Learn Python the Hard Way这样的练习并进行练习会非常有帮助。

答案 1 :(得分:1)

x是该方法的本地方法,即它不应该(并且不能,至少不容易)从外部访问。更糟糕的是 - 它只在方法运行时存在(并在返回后被删除)。

请注意,可以为方法指定属性(实际上是任何函数):

class Leaf(object):
    def green(self):
        ...
    green.x = 100

print Leaf.green.x

但这可能不是你想要的(对于初学者来说,你不能将它作为方法中的局部变量访问 - 因为它不是一个)并且实际上很少有用(除非你有一个非常好的理由不去,只是使用一个班级。)