【发布时间】:2017-02-13 06:51:43
【问题描述】:
我有一个 Class1 及其自变量和方法,在一个方法中我使用其他类 (Class2) 的另一个方法:
import Class2
class Class1:
def __init__(self):
self.1 = None
self.2 = None
...
def method1(self):
do something
...
def methodN(self):
Class2.method(self):
...
在 Class2 方法中,我使用与 Class1 相同的自变量名称(self.1、self.2 等)。
令我惊讶的是,当 Class2 的方法到达末尾时,我在 Class2 方法中使用的 self 变量仍然存在于 Class1 对象中。
如果我理解得很好,这只有在 Class2 继承 Class1 时才有可能,例如:
import Class1
class Class2(Class1):
Class1.__init__(self):
...
这怎么可能?
谢谢大家
编辑:schwobaseggl,非常感谢您的解释。现在我已经理解了函数和方法之间的区别(在某些书中,这些词被用作同义词)。因此,在我的情况下,我不使用方法而是使用函数,并且我也理解如果我在 Class2 中使用一个在 Class1 的对象(实例)中不存在的 self.xxx 变量,它将为实例创建.这是正确的吗? 所以Class1实例的self.1和self.2变量和Class2函数的self.1和self.2变量是不一样的,但是Class2的函数覆盖了Class1实例的self变量,对吗? 但是如果我希望一个类函数使用另一个类实例的自变量(我的意思是已经设置的值),我必须使用继承,对吗?
【问题讨论】:
标签: python python-3.x