【发布时间】:2014-08-25 15:17:11
【问题描述】:
我发现自己经常做类似的事情:
msg = ['This', 'is', 'a', 'message'] # (or built up programmatically)
msg = ' '.join(msg)
这会将变量msg 的类型从list 更改为str,这对于像Python 这样的动态类型语言是允许的。不过,这是个好主意吗?这里没有太多的混淆,因为分配很接近,但是如果msg 以两种不同的形式在广泛分布的代码中使用呢?
【问题讨论】:
-
isinstance(msg,list) ?我认为这里没有问题。有时可能很难阅读,但我发现自己经常这样做。只要确保您使用正确的类型计数即可
-
真正的问题是:为
list和str使用相同的标签有什么好处? -
为变量提供描述性名称对您非常有用,即使您需要额外的按键。
-
'.'.join('This is a message') == 'T.h.i.s. .i.s. .a. .m.e.s.s.a.g.e' -
“改变变量的类型” 不。它没有。变量在 Python 中没有类型。它们只不过是指代内存中的对象的标签。
标签: python dynamic-typing