global()的定义:以字典类型返回当前模块的全部函数(方法),包括内置函数。
话不多说上梨子
def zero_dockers():
print('zero')
def one_dockers():
print('one')
def two_dockers():
print('two')
def hello():
print('hello')
NETWORK=dict()
if __name__=='__main__':
for local_function in list(globals()):
if local_function.endswith('dockers'):
NETWORK[local_function]=globals()[local_function]
print(NETWORK)
{'zero_dockers': <function zero_dockers at 0x000001FD33BC9BF8>, 'one_dockers': <function one_dockers at 0x000001FD33BC9C80>, 'two_dockers': <function two_dockers at 0x000001FD33BC9D08>}
得到结果如上
需要注意的就是
1.如果不做筛选,比如不用enswith,startwith这种条件,就会得到全部的函数,包括内置函数,不可以用find()
2.如果不用globals()[ ]这种形式来获得,只能得到str类型的函数名
比如
def zero_dockers():
print('zero')
def one_dockers():
print('one')
def two_dockers():
print('two')
def hello():
print('hello')
if __name__=='__main__':
for local_function in list(globals()):
if local_function.endswith('dockers'):
print(local_function)
输出
zero_dockers
one_dockers
two_dockers