我尝试坚持PEP8编码约定。我有一个叫main
的包。包内有一个名为time
的模块,里面有一个名为Time
的类。现在我在为我的实际实例找到一个合适的名称时遇到了一些麻烦,因为time
(通常是我的选择)已经被模块采用,并且如果以这种方式命名它,似乎会出现名称冲突。如何在Python中命名实例变量?
from main.time import Time
time = Time()
...
if time.status == main.time.STOPPED
也许我也把这个常量放在错误的模块中,但我认为最好让我的常量在它们所属的地方。这是在我的课Time
(和main
模块)中使用的一个常量,所以我可以确保我不会将它与用于播放器移动的另一个常量STOPPED
混合使用。不幸的是我得到一个AttributeError: 'function' object has no attribute 'time'
。
这里最好的解决方案是什么?将常量重命名为TIME_STOPPED
和PLAYER_STOPPED
并将它们放入常量模块中?命名我的实例变量my_time
或time_
或类似的东西并不是我想要做的。 Pythonic的方式是什么?
不清楚。请提供完整的代码和追踪 – Pynchia
您的问题是,您无法访问'STOPPED',当然?我想你想'从main.time导入时间,STOPPED'。你也可以使它成为'Time'类属性,所以测试将变成'if time.status == Time.STOPPED:',进一步减少了'STOPPED'的播放器版本的不确定性。 – jonrsharpe
尝试添加像这样的导入:'import main.time' –