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

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

python 中 getattr 使用 為什么這樣報錯?

python 中 getattr 使用 為什么這樣報錯?

慕勒3428872 2019-04-10 20:47:47
#-*-coding:utf-8-*-fromsysimportexitclassnewgame(object):def__init__(self,start):self.start=start#self.cccl()defplay(self):next=self.startwhileTrue:print"\n--------"printnextroom=getattr(self,next)next=room()defdeath(self):print"thisisdeath"exit(-1)defcccl(self):print"thisisbbbb"#returnself.al()如果加上return或者exit就成功不加則報錯#exit(1)defal(self):print"thisisal"action=raw_input(">")ifaction=='1':return"death"elifaction=='2':return"cccl"ngame=newgame("al")ngame.play()line17,inplayroom=getattr(self,next)TypeError:getattr():attributenamemustbestring請問這是為什么呢?pyenvversionanaconda-2.0.1(setby/usr/local/opt/pyenv/version)但是放到ideone.com上就又不報錯了
查看完整描述

2 回答

?
達令說

TA貢獻1821條經(jīng)驗 獲得超6個贊

getattr第二個參數(shù)必須為str,而代碼里面next=room()應(yīng)該是這個room返回了一個非str的東西。說起來room是個什么鬼?代碼片段里面根本沒出現(xiàn)過。
                            
查看完整回答
反對 回復(fù) 2019-04-10
?
泛舟湖上清波郎朗

TA貢獻1818條經(jīng)驗 獲得超3個贊

正確的寫法為room=getattr(self,'next').
你可以認為getattr向?qū)ο髠鬟f了一條名字叫做'next'的短信,請求'next'的內(nèi)容.既然是短信,那必須是字符串啦.
                            
查看完整回答
反對 回復(fù) 2019-04-10
  • 2 回答
  • 0 關(guān)注
  • 382 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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