最近在调用其他人写的模块时发现经常会出现整个文档被当作一个字符串的情况,调用其中的属性会抛出字符串类型没有这个属性
的异常,似乎文档没有被正确解析。
查来查去,我发现把顶部文件编码声明# coding=utf8
修改为# coding:utf-8
就可以正常运行。并且这种情况只是偶尔出现,并不是100%,因为那个同事所有的文件都是用的第一种格式,但是只有个别的会出现异常。
我看到网上说,这里的声明只要符合"coding[:=]\s*([-\w.]+)"
这个格式都是可以的,但为什么会有几率出现异常?
请问这个问题是否真的是由于声明格式导致的?这两种声明方式又有什么区别呢?
非常感谢
Python版本:2.7
编辑器:Sublime / PyCharm
运行环境:CentOS
两种声明没有区别, 我觉得问题最大可能在于, 因为那个文件是在
windows
或者其他不同环境写的, 所以导致该会有些不可见字符, 这在别人的电脑上运行没问题, 但是到了你这边, 可能就会不兼容或者出错.