第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)于在python3.7當(dāng)中的語法錯誤!

關(guān)于在python3.7當(dāng)中的語法錯誤!

我按照下面的代碼執(zhí)行后顯示這樣的錯誤。class Game(object): top_score = 0 @staticmethod def __init__(self, player_name): self.player_name = player_name @staticmethod def show_help(): print("幫助信息:讓僵尸進(jìn)入大門") @classmethod def show_top_score(cls): print("歷史記錄 %d" % cls.top_score) def start_game(self): print("開始游戲啦..." % self.player_name) Game.show_help() Game.show_top_score() game = Game("小明") game.start_game() 錯誤顯示: D:PY001venvScriptspython.exe D:/PY001/cards_main.py幫助信息:讓僵尸進(jìn)入大門Traceback (most recent call last):歷史記錄 0 File "D:/PY001/cards_main.py", line 25, in <module> game = Game("xiaoming") TypeError: __init__() missing 1 required positional argument: 'player_name' Process finished with exit code 1 請問怎么樣修改才能解決這樣的問題呢?
查看完整描述

3 回答

?
尚方寶劍之說

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個贊

class class Game(object):
    @staticmethod    # python的init應(yīng)該是一個實(shí)例對象,你這樣聲明表示一個靜態(tài)對象,應(yīng)該刪除
    def __init__(self, player_name): 
        ...
  1. @staticmethod:下面的函數(shù)代表普通函數(shù),也就是說傳入的第一個參數(shù)不是實(shí)例本身,所以你實(shí)例化的時候,"xiaoming"是傳送給第一個變量self的,而不是player_name的;
  2. 不加這個修飾符號時,第一個對象是實(shí)例本身,也就是說,在實(shí)例化時,系統(tǒng)就已經(jīng)傳送了實(shí)例本身給self參數(shù),而你傳送的"xiaoming"是給了player_name
查看完整回答
反對 回復(fù) 2019-03-01
?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個贊

要么去掉__init__上的@staticmethod,要么去掉__init__的參數(shù)self

查看完整回答
反對 回復(fù) 2019-03-01
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個贊

你用 @staticmethod 把 __init__方法 變成了靜態(tài)方法。
可以簡單的理解為,靜態(tài)方法是定義在類內(nèi)部的函數(shù),和類無關(guān)。
而__init__方法,在類進(jìn)行實(shí)例化的時候會執(zhí)行,所以你的"小明" 是傳給了self,而你的 player_name 并沒有賦值。

查看完整回答
反對 回復(fù) 2019-03-01
  • 3 回答
  • 0 關(guān)注
  • 721 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號