能够
我有大约10亿个解析器函数,我给它们起了名字,比如:
def parser1(x):
do_stuff(x)
def parserN(x,y):
do_other_stuff(x,y)
我打电话给:
>>> result = parser1(x)
这个命名法意味着代码库不够漂亮,但它是有效的。如果我写一个新的解析器,我只增加我的文件,并希望我计数正确,没有做任何错误来覆盖现有的东西,等等。
然而,我喜欢用某种方式来称呼它们,而不是用我给它们起的名字,一个我必须用我愚蠢的人脑想出的名字,而是根据某种机器生成的名字,从
函数的。
例如,我的理想是:
parser1 = """def func(x):
do_stuff()"""
print(hashlib.md5(parser1.encode('utf-8')).hexdigest())
>>> print(hashlib.md5(parser1.encode('utf-8')).hexdigest())
"2cb3fed66c79bc14eb442afad27651c8"
>>> result = __2cb3fed66c79bc14eb442afad27651c8(x)
例如,可以将这些md5fun存储在映射到其实现的字典中,然后可以对它们进行迭代,或者根据某些逻辑应用它们,甚至可能是来自映射中其他md5fun的逻辑。
加分是因为,不仅使用函数字符串表示的md5,而且使用函数AST的md5,以便:
def parser1(x):
a = 1
do_stuff(x) + a
和
def parser2(y):
b = 1
do_stuff(y) + b