在模块内设计函数的python方法
在设计模块时,更好的做法是让多个函数执行类似的操作,还是让一个函数根据一个参数执行不同的行为在模块内设计函数的python方法,python,Python,在设计模块时,更好的做法是让多个函数执行类似的操作,还是让一个函数根据一个参数执行不同的行为 def到_hex(val): pad=位//4 返回“{:X}”.format(val).zfill(pad) def至_箱(val): pad=位 返回“{:b}”.format(val).zfill(pad) ... 或: def to_字符串(val,form='b'): 如果form='X': pad=位//4 elif form==“o”: ... 返回{:{form}}.format(va
def到_hex(val):
pad=位//4
返回“{:X}”.format(val).zfill(pad)
def至_箱(val):
pad=位
返回“{:b}”.format(val).zfill(pad)
...
或:
def to_字符串(val,form='b'):
如果form='X':
pad=位//4
elif form==“o”:
...
返回{:{form}}.format(val,form=form).zfill(pad)
这可能是基于观点,但什么是pythonic方法?两者都可以。然而,在第二种情况下,如果有太多的控制流嵌入到过程代码中,这可能会混淆您对读者的意图。使用第一种方法避免过多的
if-else
逻辑。但是如果您的方法非常相似,那么应该将它们封装在一个类中。这种方法将帮助您避免不必要的重复。例如:
class-HexBin:
定义初始化(self,val,bits):
self.val=val
self.bits=位
def至_十六进制(自身):
pad=self.bits//4
返回“{:X}”.format(self.val).zfill(pad)
def至_箱(自身):
pad=自位
返回“{:b}”.format(self.val).zfill(pad)
您可以这样使用它:
obj=HexBin(10,10)
>>打印(对象到十六进制)
>>打印(对象到_bin())
这两个版本都是“pythonic”,所以这取决于风格和您的喜好,如果您使用第一个选项,那么在类结构中使用第二个选项可能会更好,而第二个选项可以是独立的,如果这个程序变得庞大,您可以访问多个属性,希望这有帮助:)这是全部代码吗?您在这里接受用户输入吗?
0A
0000001010