我刚刚完成了一个小型的all-python3 gpio模块,用于Linux gpiolib
。我玩弄了两种不同的方法来命名和导入客户端的东西:
gpio.py
class GPIOInput(object):
...
class GPIOEvent(object):
...
class GPIOOutput(object):
...
client.py
from gpio import GPIOEvent, GPIOOutput, GPIOInput
irq = GPIOEvent(1, 14)
gpio.py
class Input(object):
...
class Event(object):
...
class Output(object):
...
client.py
import gpio
irq = gpio.Event(1, 14)
问题:是否有一个好的/具体的理由选择一个而不是另一个?或者只是偏好?
没有(对我来说)真正的快乐混合体。我喜欢在模块内部作用域时的短名称,但如果在模块外部使用,则确实需要模块名称来限定它们的含义。但是导入gpio,然后引用gpio.GPIOOutput似乎是多余的。
答案 0 :(得分:5)
PEP8主张gpio.Input()
等等。
还有使用短唯一前缀将相关名称组合在一起的风格。这在Python中用得不多,......
在Python中,这种样式通常被认为是不必要的,因为属性和方法名称以对象为前缀,函数名称以模块名称为前缀。