Python print出现提示__main__.Observer object at 0x0224F3B0是何原因,,请问Python pri
Python print出现提示__main__.Observer object at 0x0224F3B0是何原因,,请问Python pri
请问Python print 的时候出现<__main__.Observer object at 0x0224F3B0是什么问题
class Observer(object):
def __init__(self,subject): self.subject = subject self.weather = self.subject.weather self.subject.add_observer(self)def update(self,weather,temperature,tips): self.weather = weather self.temperature = temperature self.tips = tips self.display()def display(self): return ("今日天气:{} \n今日气温: {} \n今日建议:{}").format(self.weather,self.temperature,self.tips)
class Weather(object):
def __init__(self): self.observers = [] self.weather = "" self.temperature = "" self.tips = ""def add_observer(self,observer): self.observers.append(observer)def delete_observer(self,observer): if observer in self.observers: self.observers.remove(observer)def notify(self): for observer in self.observers: observer.update(self.weather,self.temperature,self.tips)def add_data(self,weather,temperature,tips): self.weather = weather self.temperature = temperature self.tips = tips self.notify()
if name=='main':
subject= Weather()observer = Observer(subject)subject.add_data('多云转阴','10~23℃','请注意别感冒!')subject.add_observer('张三')subject.add_observer('李四')subject.add_observer('Ben')def Print(): ox = subject.observers for o in ox: weather_data = observer.display() print("{}你好,以下是今日的天气播报:\n{}\n").format(o,weather_data)Print()
初学Python,在做观察者模式的时候发现print会打印出多余的东西
<main.Observer object at 0x0224F3B0>你好,以下是今日的天气播报:
今日天气:多云转阴
今日气温: 10~23℃
今日建议:请注意别感冒!
请问这是什么原因,以及解决之道
在Class Observer的init函数中,self.subject.add_observer(self)语句将Weather的实例对象append到Weather的observers list里面了。
observer = Observer(subject)self.subject.add_observer(self)
使得observer被添加到subject.observers中去
print("{}你好,以下是今日的天气播报:\n{}\n").format(o,weather_data)
o就是observer,print observer
所以会输出<main.Observer object at 0x0224F3B0>
可以看一下“__str__”方法,可以修改print observer时的返回值
编橙之家文章,
相关内容
- ruby库如何在python项目中使用,ruby库python项目,比如我非
- Linux系统Python可以选择不同网卡进行网络访问吗?,lin
- 这段Python代码是什么意思?,段Python代码,@main.app_co
- 求解文中正则匹配'\'将''转义成字符串的原理,文中正
- Mac升级Python最新版本后有一些模块不能使用是什么原因
- ubuntu卸载python2.7再重装的问题,ubuntu卸载python2.7,ubunt
- Python语言中class使用.bar()与().bar应用不是很明白,pyth
- Django Memcache操作获取值问题,djangomemcache,请问,不同的
- 学过Java想再学一门新的语言,选择python怎么样?,javapy
- python爬虫抓取图片 终端报错 <urlopen error no hsot g
评论关闭