从名称存储在字符串变量(字典)中的其他 python 文件调用函数
Calling a function from other python file of whose name is stored in a string variable (dictionary)
A custom_string
给定的输入是字母数字输入。
如果 for 循环中的 i
在任何迭代中恰好是一个数字,那么在另一个 python 文件 letterMatrix
中编写的自定义函数中的一个被调用为 def num_0: (....) def num_1: (....) def num_2: (....)
关于变量的值 i
我不能像最后一行那样调用那个自定义函数(比如)num_0
(当我 == 0 时)。
我如何根据变量 i
中的值调用 letterMatrix.num_1()
(比如 i == 1)
import letterMatrix
others = {0 : 'num_0', 1 : 'num_1', 2 : 'num_2', 3 : 'num_3', 4 : 'num_4', 5 : 'num_5', 6 : 'num_6', 7 : 'num_7', 8 : 'num_8', 9 : 'num_9'}
for i in custom_string:
if i.isnumeric():
others[letterMatrix.i](self.font_size, self.character, row)
改用getattr()
。
others = {0 : 'num_0', 1 : 'num_1', 2 : 'num_2', 3 : 'num_3', 4 : 'num_4', 5 : 'num_5', 6 : 'num_6', 7 : 'num_7', 8 : 'num_8', 9 : 'num_9'}
#custom_string = 'a0b1c2' #Example
for i in custom_string:
if i.isnumeric():
getattr(letterMatrix, others[i])(self.font_size, self.character, row)
A custom_string
给定的输入是字母数字输入。
如果 for 循环中的 i
在任何迭代中恰好是一个数字,那么在另一个 python 文件 letterMatrix
中编写的自定义函数中的一个被调用为 def num_0: (....) def num_1: (....) def num_2: (....)
关于变量的值 i
我不能像最后一行那样调用那个自定义函数(比如)num_0
(当我 == 0 时)。
我如何根据变量 i
letterMatrix.num_1()
(比如 i == 1)
import letterMatrix
others = {0 : 'num_0', 1 : 'num_1', 2 : 'num_2', 3 : 'num_3', 4 : 'num_4', 5 : 'num_5', 6 : 'num_6', 7 : 'num_7', 8 : 'num_8', 9 : 'num_9'}
for i in custom_string:
if i.isnumeric():
others[letterMatrix.i](self.font_size, self.character, row)
改用getattr()
。
others = {0 : 'num_0', 1 : 'num_1', 2 : 'num_2', 3 : 'num_3', 4 : 'num_4', 5 : 'num_5', 6 : 'num_6', 7 : 'num_7', 8 : 'num_8', 9 : 'num_9'}
#custom_string = 'a0b1c2' #Example
for i in custom_string:
if i.isnumeric():
getattr(letterMatrix, others[i])(self.font_size, self.character, row)