如何知道从哪个 class 实例调用函数来访问实例属性
how to know from which class instance a function is called to access the instance attributes
我想访问调用函数的 class 实例的属性:
例如:
class A:
def a(self):
return B.q
class B:
q=0
def b(self):
M=A()
return M.a()
c=B()
c.q = 6
print(c.b())
输出将是 0
但我希望它打印 class B
实例 c
的 q
属性,它具有值 6
将实例作为参数传递。
class A:
def a(self, b):
return b.q
class B:
q=0
def b(self):
M=A()
return M.a(self)
c=B()
c.q = 6
print(c.b())
定义一个初始化方法,以便您可以使用实例属性而不是 class 变量
class A:
def a(self):
return B.q
class B:
def __init__(self):
self.q = 0
def b(self):
M=A()
return M.a()
c=B()
c.q = 6
print(c.b())
这似乎是非常糟糕的程序设计。你想用这个完成什么?
- 您有一个 class 属性和一个实例属性 - 在 class 中 - 同名
q
。这会使您的代码难以遵循和维护。
- 你有方法 B.b 实例化 class A 的实例。你立即调用 A.a,它被分配了从 class 返回实例属性和对象的可疑任务。 =35=]B.
清理你的设计。
- 对每个 class.
适当地使用 init
- 设计您的 class 方法,使其与 class 的实例 的特征相适应。您的问题强烈表明您的设计在您的脑海中和代码中都还不清晰。
我想访问调用函数的 class 实例的属性:
例如:
class A: def a(self): return B.q class B: q=0 def b(self): M=A() return M.a() c=B() c.q = 6 print(c.b())
输出将是 0
但我希望它打印 class B
实例 c
的 q
属性,它具有值 6
将实例作为参数传递。
class A:
def a(self, b):
return b.q
class B:
q=0
def b(self):
M=A()
return M.a(self)
c=B()
c.q = 6
print(c.b())
定义一个初始化方法,以便您可以使用实例属性而不是 class 变量
class A:
def a(self):
return B.q
class B:
def __init__(self):
self.q = 0
def b(self):
M=A()
return M.a()
c=B()
c.q = 6
print(c.b())
这似乎是非常糟糕的程序设计。你想用这个完成什么?
- 您有一个 class 属性和一个实例属性 - 在 class 中 - 同名
q
。这会使您的代码难以遵循和维护。 - 你有方法 B.b 实例化 class A 的实例。你立即调用 A.a,它被分配了从 class 返回实例属性和对象的可疑任务。 =35=]B.
清理你的设计。
- 对每个 class. 适当地使用 init
- 设计您的 class 方法,使其与 class 的实例 的特征相适应。您的问题强烈表明您的设计在您的脑海中和代码中都还不清晰。