谢子仲 发表于 2021-5-10 21:45:35

请问大神怎么用for循环进行变量批命名

n = NN(4, 10)
class NN:

    def __init__(self, nh, hid_num):
      names = locals()
      print(hid_num)
      for i in range(hid_num):
            names['hidden_n' + str(i)] = nh
    print(hidden_n1)
自尝试用上述代码,结果为啥显示上述代码没有定义hidden_n1

谢子仲 发表于 2021-5-10 21:57:21

请大神指导一下,就是想应循环语句完成完成 a1 =1, a2=2, a3=3, a4=4....变量的幅值

谢子仲 发表于 2021-5-10 22:01:21

有没有大神指导一下,在线等 急{:10_266:}

逃兵 发表于 2021-5-10 22:04:06

for i in range(1,10):
    exec(f'a{i} = i')

谢子仲 发表于 2021-5-10 22:10:58

逃兵 发表于 2021-5-10 22:04


我是想在上面的class里面的函数完成调用,您这种方法在里面应用也是显示没模型{:5_102:}

Stubborn 发表于 2021-5-10 22:37:51

class NN:

    def __init__(self,name, value):
      for n, val in zip(name, value):
            setattr(self, n, val)

qq1151985918 发表于 2021-5-11 08:22:47

建议用字典

逃兵 发表于 2021-5-11 08:30:08

class NN:
    def __init__(self, nh, hid_num):
      for i in range(hid_num):
            exec(f'self.a{i} = nh')

n = NN(4, 10)

谢子仲 发表于 2021-5-11 08:55:03

qq1151985918 发表于 2021-5-11 08:22
建议用字典

字典还要一个个应用 后面没办法批处理{:5_102:}

谢子仲 发表于 2021-5-11 09:00:51

Stubborn 发表于 2021-5-10 22:37


感谢大佬 但是我不太想用字典的形式实现{:5_102:}

谢子仲 发表于 2021-5-11 09:02:25

逃兵 发表于 2021-5-11 08:30


大佬厉害昨天晚上我也是这么写的结果不对 今天改成你的就对了{:9_232:}

逃兵 发表于 2021-5-11 09:02:59

谢子仲 发表于 2021-5-11 09:02
大佬厉害昨天晚上我也是这么写的结果不对 今天改成你的就对了

你可能少写个self
页: [1]
查看完整版本: 请问大神怎么用for循环进行变量批命名