2011-01-26 58 views
0

导入变量可以说我有这样的事情: 这是文件tree.py:了解如何从一个方法

class leaf(): 
def green(): 
    x = 100 

这是文件view.py:

from tree import leaf.green 
g = green() 
print g.x 

怎么办我得到的可变形式子类​​ 我知道它只是:

这是文件tree.py:

class leaf(): 

    x = 100 

这是文件view.py:

from tree import leaf 
class view(): 
g = leaf() 
print g.x 

我知道如何做到这一点,如果这两个类都在同一个文件。但我不明白在两个分开的文件。 谢谢, 约翰

+1

我不认为你知道如何在Python中使用类。 – 2011-01-26 17:25:14

+0

它们也许是真的...... – 2011-01-26 17:26:06

+1

术语混合:class`的一个子类C是从C继承的`class`类.``中的`def`是一个方法。 – delnan 2011-01-26 17:26:14

回答

2

我认为你的问题的根源是,你需要了解更多关于Python如何工作的类。幸运的是,Python文档中的教程has a section on classes

如果这没有帮助,那么通过Learn Python the Hard Way之类的东西,并做练习可以非常有帮助。

1

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

请注意,您可以属性分配给一个方法(任何功能,真的):

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

print Leaf.green.x 

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