免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2078 | 回复: 5
打印 上一主题 下一主题

关于类 [复制链接]

论坛徽章:
3
天秤座
日期:2014-10-29 11:37:572015元宵节徽章
日期:2015-03-06 15:50:39NBA常规赛纪念章
日期:2015-05-04 22:32:03
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-24 09:33 |只看该作者 |倒序浏览

  1. def __init__(self, x=0, y=0):
  2.       self.x = x
  3.       self.y = y   
  4. def distance_from_origin(self):
  5.       return math.hypot(self.x, self.y)   
  6. def __eq__(self, other):      
  7.       return self.x == other.x and self.y == other.y   
  8. def __repr__(self):      
  9.       return "Point({0.x!r}, {0.y!r})".format(self)   
  10. def __str__(self):      
  11.       return "({0.x!r}, {0.y!r})".format(self)
复制代码
{0.x!r}是什么意思

论坛徽章:
1
2015七夕节徽章
日期:2015-08-21 17:58:43
2 [报告]
发表于 2014-11-24 11:50 |只看该作者
本帖最后由 shreychen 于 2014-11-24 11:50 编辑

回复 1# tomer


{0.x!r} python字符串格式化的写法,其中的0类似于函数的位置参数,看个例子就明白了
  1. >>> "{0}-{1}".format("a","b")
  2. 'a-b'
复制代码
后面的!r是表示repr()来显示,另外还有一个!s表示用str()来显示

论坛徽章:
3
天秤座
日期:2014-10-29 11:37:572015元宵节徽章
日期:2015-03-06 15:50:39NBA常规赛纪念章
日期:2015-05-04 22:32:03
3 [报告]
发表于 2014-11-24 13:28 |只看该作者
回复 2# shreychen


    谢谢!r是表示repr()来显示 是什么意思

论坛徽章:
1
子鼠
日期:2014-05-04 13:59:31
4 [报告]
发表于 2014-11-24 14:51 |只看该作者
  1. "{0.x!r}".format(ABC)

  2. # 0表示第一个位置参数
  3. >>> "{0}".format("123","qe")
  4. '123'
  5. >>> "{1}".format("123","qe")
  6. 'qe'

  7. # .x 表示 属性
  8. # 0.x 也就是第一个参数的属性(就是你的例子里的self.x)

  9. >>> class MyClass(object):
  10. ...     a = "123"
  11. ...
  12. >>> b = MyClass()
  13. >>>>>> "{0.a}".format(b)
  14. '123'

  15. # !为转换标志 r == repr() (%r)
  16. >>> "{0.a!r}".format(b)
  17. "'123'"
  18. >>> "{0.a!s}".format(b)
  19. '123'

  20. str.format() 其他说明官方文档里都有
  21. https://docs.python.org/2/library/string.html#format-string-syntax
复制代码

论坛徽章:
3
天秤座
日期:2014-10-29 11:37:572015元宵节徽章
日期:2015-03-06 15:50:39NBA常规赛纪念章
日期:2015-05-04 22:32:03
5 [报告]
发表于 2014-11-24 15:16 |只看该作者
回复 4# 修杰_JIANG


    发现:

  1. >>>>>> "{0.a}".format(b)

  2. '123'



  3. # !为转换标志 r == repr() (%r)

  4. >>> "{0.a!r}".format(b)

  5. "'123'"

  6. >>> "{0.a!s}".format(b)

  7. '123'

复制代码
"{0.a}".format(b)和"{0.a!s}".format(b)输出一样。 "{0.a!r}".format(b)加上!r后,'123'变成"'123'"了





论坛徽章:
0
6 [报告]
发表于 2014-11-24 22:31 |只看该作者
回复 4# 修杰_JIANG
学习了,很详细!


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP