微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在函数内部具有变量变量

如何解决在函数内部具有变量变量

我想将函数的输入(称为标签)插入全局变量名称,因此它是基于输入的唯一变量。在示例脚本中,它类似于:

#Script/function 1 - when a file is deleted in a folder it triggers an event 
# that runs function on_deleted():

on_deleted()
def on_deleted(event):
    if "partoffilename1" in list_of_files:
        do_this(label1)
    elif "partoffilename2" in list_of_files:
        do_this(label2)
#Script/function 2 - for every label input it has its own variable that has some
# calculations/iterations on a 'long' list of globals (!). So for each label it should 
# pick its unique global,but also some globals that span across the other labels.

def do_this(label):
   #Import globals here,which mostly all the variabeles below
   label_min += -1
   label_done = abs(label_min)
   start_time_label = datime.Now()
   #and then around 180 more lines of code with each a unique variable for the label

我不知道的窍门是如何根据第二个函数 do_this()的输入使变量可变,该第二个函数标签。目前,我只是将其复制粘贴到一个实例中,然后根据标签重命名了所有变量....如此丑陋且冗长的代码难以维护。

我考虑在第二个函数中使用dict,但随后我仍然需要单独解决每个变量的问题,以为其分配值。 另一个选项可能是class,但是我在一个类中有很长的变量列表,而且我不知道如何避免以下情况:

class label:
   class_variable_1 = "bla1"
   class_variable_2 = "bla2"
   
   def __init__(self,param1,param2,.....,param100):
      self.instance_var1 = param1
      self.instance_var2 = param2
      ....
      self.instance_var100 = param100

所以也许应该是一个问题,是否有一个明智的解决方案来避免在类中为def __init__输入/参数的清单很长?还是我受此约束?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。