我对自创模块有疑问。我正在编写一个非常动态的脚本,它基于用户密钥和密钥字典生成包含字典的函数。
我的问题与自我创建模块的最佳实践有关。显然我可以打开并写入.py文件,但这样做的最佳格式是什么?我使用相同的格式生成了大型SQL查询文档,即使我知道它很容易注入。我在一个非常受控制的环境中工作,我有一个字符串验证语句,所以我不太担心。
我知道模块的功能相同,但我真的不想让自己养成以这种方式编码的坏习惯。
with open('keystruct.py', 'w+') as KeyStruct:
KeyStruct.write('''
def KeyAssignments(referencekey):''')
KeyStruct.write('''
ReferenceKey = {}'''.format(CharacterKeyList)) # Ignore indentation for this line.
print(CharacterKeyList)
没有时间比现在更好地学习如何正确地做事,嗯?
另外,如果以上被认为是“好的”,如果仅仅用于自我引用,那么在单行上定义一个50多个对象的字典通常是可以接受的吗?
上述陈述的输出是:
...
ReferenceKey = ['A = 0', 'B = 1', 'C = 2', 'D = 3', 'E = 4', 'F = 5', 'G = 6', 'H = 7', 'I = 8', 'J = 9', 'K = 10', 'L = 11', 'M = 12', 'N = 13', 'O = 14', 'P = 15', 'Q = 16', 'R = 17', 'S = 18', 'T = 19', 'U = 20', 'V = 21', 'W = 22', 'X = 23', 'Y = 24', 'Z = 25', 'a = 26', 'b = 27', 'c = 28', 'd = 29', 'e = 30', 'f = 31', 'g = 32', 'h = 33', 'i = 34', 'j = 35', 'k = 36', 'l = 37', 'm = 38', 'n = 39', 'o = 40', 'p = 41', 'q = 42', 'r = 43', 's = 44', 't = 45', 'u = 46', 'v = 47', 'w = 48', 'x = 49', 'y = 50', 'z = 51', '0 = 52', '1 = 53', '2 = 54', '3 = 55', '4 = 56', '5 = 57', '6 = 58', '7 = 59', '8 = 60', '9 = 61']
答案 0 :(得分:1)
尝试将功能与数据分离,而不是尝试动态生成代码。将数据转储为类似JSON的数据,然后使用函数工厂或类来加载和使用您创建的各种配置。