Python 使用.self从另一个类调用变量
我有以下代码:Python 使用.self从另一个类调用变量,python,Python,我有以下代码: class A(object): const1 = 100 const2 = 200 class Example(object): def __init__(self, a, b): self.a = a self.b = b self.const = A() def add(self): return self.a + self.b + self.const.const2 我的问题是为什么它是这样写的:self.con
class A(object):
const1 = 100
const2 = 200
class Example(object):
def __init__(self, a, b):
self.a = a
self.b = b
self.const = A()
def add(self):
return self.a + self.b + self.const.const2
我的问题是为什么它是这样写的:
self.const=A()
?。换句话说,我们在这里想要实现什么 您正在将示例类对象内的变量设置为类对象。它将允许您参考以下内容:
self.const.const1
或者,若您创建了一个示例类对象,您可以执行以下操作来访问类对象内部的变量
exam_obj = Example(1, 2)
exam_obj.const.const2
类
示例的属性const
被分配一个类A
的实例。由于该属性是类A
的实例,因此它有其各自的属性:const1
和const2
。在这里,他们可能试图向你展示你可以用类做这些事情。我们正在创建一个A
的实例,并将其作为self
的属性(一个Example
的实例),如果我说“我们正在创建一个A
的实例,并将其作为我们想要创建的对象的属性”,这是一个正确的说法吗?@far.western是的,这将是正确的术语。“在这里,他们可能试图向你展示,你可以用类做这些事情。”-这是正确的,也是正确的观点。但依我看,他们试图证明Python允许您拥有多个唯一的名称空间,并且可以将它们嵌套在一起。@elena:我们将属性的名称作为类示例的\uuu init\uuu
函数的参数。如果A()
或const
成为一个属性,那么我们为什么不把它放在\uuuu init\uuuu
函数的括号内?@far.western\uu init\uuu
将可能影响/修改属性值的内容作为参数。属性const
只是类A
的一个实例。因此,您不需要为\uuuuu init\uuuuu
提供参数来初始化它。@elena:我为过于挑剔而道歉:我们不应该说-\uuuuu init\uuuuu
将可能影响/修改我们想要创建的对象的值的东西作为参数。@far.western这两种说法都是正确的。我们将一些参数传递给\uuuu init\uuuu
,以影响对象的属性,即影响对象的值(值==属性)。当然,这取决于你所说的价值观。