在看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就不会有错误