将List中的String转换为Python中的类存储变量

时间:2018-04-12 08:44:36

标签: python string variables exec

import networkx as nx
import string
import random


females = list(string.ascii_lowercase)
males = list(string.ascii_uppercase)

class User_():
    def __init__(self, id_):
        self.id_ = id_
        self.G = nx.DiGraph()
        seed = random.randint(0,26)

        frnd_User_ = []
        for i in range(0, seed):
            frnd_User_.append(males[random.randint(0,25)])
            frnd_User_.append(females[random.randint(0,25)])
        self.frnd_User_ = frnd_User_

        edge_User_ = []
        for i in range(0, len(frnd_User_)):
            edge_User_.append((self.id_,frnd_User_[i]))
        self.edge_User_ = edge_User_

        self.G.add_edges_from(edge_User_)

对于定义User_()的给定代码,我想为列表中的每个字母生成User_class。例如,我想使用for循环执行以下任务:

A =用户_(' A')

B =用户_(' B')

...

Z =用户_(' Z')

我尝试过以下代码,但会收到错误消息:

for i in range(0, 25):
    males[i] = exec("%s = %d" % (males[i],User_(males[i])))

TypeError                                 Traceback (most recent call last)
<ipython-input-24-d6ab5c2813a4> in <module>()
      1 for i in range(0, 25):
----> 2     males[i] = exec("%s = %d" % (males[i],User_(males[i])))

TypeError: %d format: a number is required, not User_

有什么建议要继续吗?

0 个答案:

没有答案