[问题] 整数和字串literal的问题

楼主: LessonWang (橘白Cat)   2017-06-25 10:58:25
在看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就不会有错误
作者: mikapauli (桜花)   2017-06-25 11:06:00
(6).__str__python认为那是小数点
楼主: LessonWang (橘白Cat)   2017-06-25 12:10:00
那这样不会误认为长度为1的tuple吗还是说(6,)这样才会是tuple (6)只是单纯的整数
作者: uranusjr (←這人是超級笨蛋)   2017-06-25 12:23:00
Tuple 的关键是逗号, 括号只是 delimiter
作者: mikapauli (桜花)   2017-06-26 11:36:00
a = 1, 2, 3

Links booklink

Contact Us: admin [ a t ] ucptt.com