鱼C论坛

 找回密码
 立即注册
查看: 4284|回复: 7

[已解决]第45课的课后习题 __repr__和__str__

[复制链接]
发表于 2016-12-2 13:29:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第45课的课后习题

为什么我直接打印demo.x不会打印出x的值啊?
感觉都没有进到__repr__和__str__里面去。

求解答为什么~~~
  1. class Demo():
  2.     def __init__(self):
  3.         self.x='FishC'
  4.     def __repr__(self):
  5.         print self.x
  6.     __str__=__repr__

  7.     def __setattr__(self, key, value):
  8.         self.__dict__[key]=value
  9.     def __getattr__(self, item):
  10.         return self.item
  11. demo = Demo()
  12. demo.x
  13. demo.x = "X-man"
  14. demo.x
复制代码
最佳答案
2022-12-16 01:33:44
  1. >>> class Demo:
  2.         def __init__(self):
  3.                 self.x = "FishC"
  4.         def __repr__(self):
  5.                 return self.x
  6.         __str__ = __repr__

  7.        
  8. >>> demo = Demo()
  9. >>> demo
  10. FishC
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-2 14:14:54 From FishC Mobile | 显示全部楼层
你用的是python2是吧   整个程序是没有错的,你是不是在.py文件中直接实例化的,可以去命令行实例化并调用x都是可以打印的,然而并不知道原因是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-2 15:10:38 | 显示全部楼层
老子最酷 发表于 2016-12-2 14:14
你用的是python2是吧   整个程序是没有错的,你是不是在.py文件中直接实例化的,可以去命令行实例化并调用x ...

用的是2.7   用pycharm跑的
我也觉得很神奇,为什么直接实例化就不可以呢?
按照道理来说在文件里面也应该是逐行执行的呀~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-3 11:14:41 From FishC Mobile | 显示全部楼层
对啊   我用的是3.5,也是这样的,很疑惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-5 08:55:22 | 显示全部楼层
老子最酷 发表于 2016-12-3 11:14
对啊   我用的是3.5,也是这样的,很疑惑

好神奇。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-5 08:55:59 | 显示全部楼层
求大神解答啊~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-5 17:09:28 | 显示全部楼层
这个问题一直都在,求解释啊。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-16 01:33:44 | 显示全部楼层    本楼为最佳答案   
  1. >>> class Demo:
  2.         def __init__(self):
  3.                 self.x = "FishC"
  4.         def __repr__(self):
  5.                 return self.x
  6.         __str__ = __repr__

  7.        
  8. >>> demo = Demo()
  9. >>> demo
  10. FishC
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 10:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表