根据官方 文档可以得到这样的用法
1 2 3 4 5 6 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: wxnacy([email protected] ) import sysmod = sys.modules[__name__]
这个特性可以应用在什么场景呢?当模块中的方法有什么共同特性时,我们可以配合 getattr
方法来进行动态调用,而不必编写复杂的判断语句。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: wxnacy([email protected] ) # Description: def format_size (size: int) : '''格式化大小''' unit = { 0 : 'B' , 1 : 'K' , 2 : 'M' , 3 : 'G' , 4 : 'T' , } for i in range(6 ): if 1024 ** i <= size < 1024 ** ( i + 1 ): if i > 0 : size = size / 1024 ** i return '{:0.1f}{}' .format( size, unit[i]) return '{}B' .format(size) if __name__ == "__main__" : import sys module = sys.modules[__name__] args = sys.argv[1 :] func_name = args[0 ] func = getattr(module, func_name) res = func(int(args[1 ])) print(res) # 调用方法 # $ python utils.py format_size 1024