【发布时间】:2018-10-06 09:33:43
【问题描述】:
我刚刚完成了一个用于 Linux gpiolib 的小型全 python3 gpio 模块。我玩弄了两种在客户端中命名和导入事物的不同方式:
1
gpio.py
class GPIOInput(object):
...
class GPIOEvent(object):
...
class GPIOOutput(object):
...
client.py
from gpio import GPIOEvent, GPIOOutput, GPIOInput
irq = GPIOEvent(1, 14)
2
gpio.py
class Input(object):
...
class Event(object):
...
class Output(object):
...
client.py
import gpio
irq = gpio.Event(1, 14)
问题:是否有充分/具体的理由偏爱其中一个?还是只是偏好?
没有(对我来说)真正快乐的混合体。我喜欢在模块内部使用短名称,但如果在模块外部使用,确实需要模块名称来限定它们是什么。但是导入 gpio,然后引用 gpio.GPIOOutput 似乎是多余的。
【问题讨论】:
-
我真的认为这取决于用例。如果您要让人们做类似
from gpio import *之类的事情,那么可以使用GPIO前缀方案。 -
我认为
import *是除了repl之外从不鼓励的东西。 -
看个人喜好了。如果我只在一个模块中使用一个类,那么我更喜欢从模块导入类中使用。如果我使用多个类,那么我只需使用导入模块。
标签: python python-3.x naming-conventions python-module