作者LessonWang (橘白Cat)
看板Python
标题[问题] 整数和字串literal的问题
时间Sun Jun 25 10:58:25 2017
在看python入门书实作时有个问题一直很纳闷
a = 6
b = "string"
c = a.__str__()
d = b.__str__()
e = 6.__str__()
f = "string".__str__()
g = int(6).__str__()
程式码如上
我的问题如下
1.为何平平都是字面值literal 字串字面值可以有__str__()方法 而整数字面值却没有 就如同变数e会出错 变数f却没有
我的想法是整数字面值没有构造一个int物件 而字串字面值有构造一个str物件 然後这物件继承object这个原生物件的__str__()方法并且覆写它
这样的观念是对的吗 如果对的话
那麽为什麽整数字面值却没有构造呢
可以有完整的解释吗
讲一下python内部的实作细节
2.当把整数或字串赋值给变数a和b 这时候不管是整数还是字串 都有构造int及str物件的参考给变数a和b 所以可以调用其物件的__str__()方法
这样是对的观念吗
3.使用int函数是不是就等同於构造了int物件 所以如同变数g就不会有错误
-----
Sent from JPTT on my Asus ASUS_Z00UD.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.242.43.210
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1498359507.A.F65.html
1F:→ mikapauli: (6).__str__ 06/25 11:06
2F:→ mikapauli: python认为那是小数点 06/25 11:07
3F:→ LessonWang: 那这样不会误认为长度为1的tuple吗 06/25 12:10
4F:→ LessonWang: 还是说(6,)这样才会是tuple (6)只是单纯的整数 06/25 12:15
5F:→ uranusjr: Tuple 的关键是逗号, 括弧只是 delimiter 06/25 12:23
ok已明了
※ 编辑: LessonWang (27.242.43.210), 06/25/2017 12:28:47
6F:→ mikapauli: a = 1, 2, 3 06/26 11:36