Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 了解如何从方法导入变量_Python_Variables - Fatal编程技术网

Python 了解如何从方法导入变量

Python 了解如何从方法导入变量,python,variables,Python,Variables,假设我有这样的东西: 这是tree.py文件: class leaf(): def green(): x = 100 class leaf(): x = 100 这是文件view.py: from tree import leaf.green g = green() print g.x from tree import leaf class view(): g = leaf() print g.x 如何获取变量形式的子类green 我知道在课堂上它只是: 这是t

假设我有这样的东西: 这是tree.py文件:

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

    x = 100
这是文件view.py:

from tree import leaf.green 
g = green()
print g.x
from tree import leaf 
class view():
 g = leaf()
 print g.x
如何获取变量形式的子类
green
我知道在课堂上它只是:

这是tree.py文件:

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

    x = 100
这是文件view.py:

from tree import leaf.green 
g = green()
print g.x
from tree import leaf 
class view():
 g = leaf()
 print g.x
如果两个类都在同一个文件中,我理解如何执行该操作。但我不明白在两个单独的文件。 谢谢
John

我认为问题的根源在于您需要更多地了解Python中的类是如何工作的。幸运的是,Python文档中提供了教程


如果这样做没有帮助,那么进行类似的练习会非常有帮助。

我认为问题的根源在于,您需要了解更多关于Python中类如何工作的知识。幸运的是,Python文档中提供了教程


如果这样做没有帮助,那么进行类似的练习会非常有帮助。

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

请注意,您可以将属性分配给方法(实际上是分配给任何函数):


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

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

请注意,您可以将属性分配给方法(实际上是分配给任何函数):


但这可能不是您想要的(对于初学者来说,您不能在方法中作为局部变量访问它-因为它不是局部变量),事实上很少有用(除非您有很好的理由不这样做,只使用一个类).

我认为你不了解如何在Python中使用类。术语混淆:一个
C的子类是一个继承自C的
。一个
中的
定义
是一个方法。我认为你不了解如何在Python中使用类。术语混淆:一个
C的子类是一个方法
class
继承自C.A
def
class
中是一个方法。我已经看完了那个文档。我仍然很困惑。@John我添加了另一个链接,您可能会觉得有帮助。你以前有过面向对象编程的经验吗。使用Java似乎容易得多。好吧,那我来看看那张PDF。Thanks@John我想说,这并不容易,只是有点不同。在Python中,所有实例方法(Java术语中是非静态的)都必须将
self
作为其第一个参数(即实例),实例变量在类中被称为
self.var
@John您可以使用
从其他模块导入SomeClass
。你不能导入方法,因为你应该在类之外写一个函数。我已经看过那个文档了。我仍然很困惑。@John我添加了另一个链接,您可能会觉得有帮助。你以前有过面向对象编程的经验吗。使用Java似乎容易得多。好吧,那我来看看那张PDF。Thanks@John我想说,这并不容易,只是有点不同。在Python中,所有实例方法(Java术语中是非静态的)都必须将
self
作为其第一个参数(即实例),实例变量在类中被称为
self.var
@John您可以使用
从其他模块导入SomeClass
。您不能导入方法,因为您应该只在类之外编写函数。您的错误。感谢您知道您无法访问变量并更改了所有内容。我想知道我想怎么做,你说对了。感谢您知道您无法访问变量并更改了所有内容。我想知道我想怎么做