[英]Callling class instance method doesn't print anything
class mainClass:
def greeting():
mydata = input('How are you?')
print(mydata)
m1 = mainClass()
m1.greeting()
問題:為什么m1.greeting()
不起作用?
m1.greeting()
:為什么m1.greeting()
不print(my data)
?
你需要要么通過self
def greeting(self):
mydata = input('How are you?')
print(mydata)
或者聲明greeting
一個classmethod
@classmethod
def greeting():
mydata = input('How are you?')
print(mydata)
除非有更多內容要遵循,否則真的沒有理由在這里介紹 OOP, greeting
也可能只是一個免費功能。
您可以在創建函數時聲明一個self
參數,或者使用帶有cls
參數的@staticmethod
或@classmethod
。 在下面檢查它們。 您可以在此處閱讀差異。
創建函數時聲明self
參數:
class mainClass:
def greeting(self):
mydata = input('How are you? ')
print(mydata)
使用不需要傳遞任何參數的@staticmethod
:
@staticmethod
def greeting():
mydata = input('How are you? ')
print(mydata)
使用需要傳遞cls
參數的@classmethod
:
@classmethod
def greeting(cls):
mydata = input('How are you? ')
print(mydata)
這三種方法可以解決您的問題。
我還建議遵守有關命名類的PEP8規則:
類名通常應使用 CapWords 約定。
這意味着您應該(在我看來更好)將您的類重命名為MainClass
。
如果您有任何疑問或問題,請在下面發表評論,以便我可以幫助您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.