簡體   English   中英

調用類實例方法不打印任何內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM