建议6:编写函数的4个建议
以下来引用部分是原文:
函数设计要尽量短小,嵌套层次不宜过深
函数声明应该做到合理、简单、易用
函数参数设计应该考虑到向下兼容
一个函数只做一件事
建议7:将常量集中到一个文件夹
通过命名风格来提醒使用者该变量代表的意义为常量,如常量名所有字母大写,用下划线连接各个单词
使用类的魔法方法__setattr__
class MyConst(object):
class ConstError(Exception):
def __init__(self, *args):
self.args = args
def __setattr__(self, key, value):
if key in self.__dict__:
raise self.ConstError("can't rebind const {key}".format(key=key))
elif not key.isupper():
raise self.ConstError("key is not all uppercase")
else:
self.__dict__[key] = value
if __name__ == '__main__':
const = MyConst()
const.LRH = 20
print(const.LRH)
const.LRH = 100
print(const.LRH)
const.lrh = 100
值得注意的是,在python中是可以直接给类绑定属性的,MyConst.LRH
将是给MyConst绑定属性,且不会调用__setattr__
方法,必须是类的实例。