亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Python print 的時候出現<__main__.Observer object at 0x0224F3B0>

Python print 的時候出現<__main__.Observer object at 0x0224F3B0>

楊__羊羊 2019-04-10 20:49:00
classObserver(object):def__init__(self,subject):self.subject=subjectself.weather=self.subject.weatherself.subject.add_observer(self)defupdate(self,weather,temperature,tips):self.weather=weatherself.temperature=temperatureself.tips=tipsself.display()defdisplay(self):return("今日天氣:{}\n今日氣溫:{}\n今日建議:{}").format(self.weather,self.temperature,self.tips)classWeather(object):def__init__(self):self.observers=[]self.weather=""self.temperature=""self.tips=""defadd_observer(self,observer):self.observers.append(observer)defdelete_observer(self,observer):ifobserverinself.observers:self.observers.remove(observer)defnotify(self):forobserverinself.observers:observer.update(self.weather,self.temperature,self.tips)defadd_data(self,weather,temperature,tips):self.weather=weatherself.temperature=temperatureself.tips=tipsself.notify()ifname=='main':subject=Weather()observer=Observer(subject)subject.add_data('多云轉陰','10~23℃','請注意別感冒!')subject.add_observer('張三')subject.add_observer('李四')subject.add_observer('Ben')defPrint():ox=subject.observersforoinox:weather_data=observer.display()print("{}你好,以下是今日的天氣播報:\n{}\n").format(o,weather_data)Print()初學Python,在做觀察者模式的時候發現print會打印出多余的東西你好,以下是今日的天氣播報:今日天氣:多云轉陰今日氣溫:10~23℃今日建議:請注意別感冒!請問這是什么原因,以及解決之道
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

observer=Observer(subject)
self.subject.add_observer(self)
使得observer被添加到subject.observers中去
print("{}你好,以下是今日的天氣播報:\n{}\n").format(o,weather_data)
o就是observer,printobserver
所以會輸出
可以看一下“__str__”方法,可以修改printobserver時的返回值
                            
查看完整回答
反對 回復 2019-04-10
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

在ClassObserver的init函數中,self.subject.add_observer(self)語句將Weather的實例對象append到Weather的observerslist里面了。
                            
查看完整回答
反對 回復 2019-04-10
  • 2 回答
  • 0 關注
  • 1438 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號