[英]Call sibling method python3?
為了節省代碼,我想在python 3的同一類中調用另一個方法。不幸的是,我只能使用一種具有固定名稱的對象的解決方案。 我的測試代碼應該可以自我解釋:
import os, sys
class Window():
konst = "2 ENTERED SECONDMETHOD"
def firstMethod(self):
print("1 ENTERED FIRSTMETHOD")
#Works
#But this is not universal
windowobj.secondMethod()
#Possible solutions that did not work
#secondMethod()
#NameError: name 'secondMethod' is not defined
#__class__.secondMethod()
#TypeError: secondMethod() missing 1 required positional argument:
#'self'
#self.secondMethod()
#NameError: name 'self' is not defined
#self.__class__.secondMethod()
#TypeError: secondMethod() missing 1 required positional argument:
#'self'
#super().secondMethod()
#AttributeError: 'super' object has no attribute 'secondMethod'
def secondMethod(self):
print(self.konst)
#Create Object
windowobj = Window()
windowobj.firstMethod()
調用self.secondMethod()
是正確的方法。
def firstMethod(self):
print("1 ENTERED FIRSTMETHOD")
self.secondMethod()
這是證明: Ideone在線編譯器
請下次不要發布帶有德語注釋的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.