[英]How to call class methods from different instantiations in parallel in Python 2.7?
[英]How to call methods in a different class
在 Python3 中對 OOP 感到困惑:
主要文件:
import ma as m1
r = m1.ma1()
r.doit()
print(r.m1avar)
print(r.m2var)
r.m2do()
地圖.py:
import mb as m2
class ma1(m2.mclass2):
m1avar = 10
def doit(self):
self.logout("doit!")
def logout(self, a):
print(a+" <--- this is correct")
mb.py:
class mclass2():
m2var = 5;
m1avar = 5;
def doit(self):
super().logout("m2 do it")
def m2do(self):
super().logout("child class")
產生:
doit! <--- this is correct
10
5
Traceback (most recent call last):
File "/home/alex/Desktop/rrr/m1.py", line 8, in <module>
r.m2do()
File "/home/alex/Desktop/rrr/mb.py", line 11, in m2do
super().logout("child class")
AttributeError: 'super' object has no attribute 'logout'
我如何獲得最低的 class (mclass2) 以訪問更高的 class ma1 中的方法 - 特別是.logout方法。
謝謝!
試試這個 - mclass2 不認為它的父 class 是超級的,就像它自己一樣。 所以是self.
你不需要super.
class mclass2():
m2var = 5;
m1avar = 5;
def doit(self):
super().logout("m2 do it")
def m2do(self):
self.logout("child class")
問題是 m2 沒有繼承自 m1。 換句話說,m2 甚至不知道 m1 的存在。
您唯一可以做的就是在 m2 object 的實例上分配一個 m1 object。我認為這不是一個好的做法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.