首页 > 解决方案 > 蟒蛇 | 将列表数据加载到类中

问题描述

有没有办法将 List 变量传递给类。我正在尝试下面这似乎不是正确的方法。

class data():
    def __init__(self, fname, lname, email):
        self.fname = fname
        self.lname= lname
        self.email = email
data_1 = data('Steve','Harvy','steve.harvy@gmail.com')
print(data_1.fname)

这打印Steve

但是,如果我在下面尝试,它不起作用。

class data():
    def __init__(self, fname, lname, email):
        self.fname = fname
        self.lname= lname
        self.email = email
list = ['Steve','Harvy','steve.harvy@gmail.com']
data_1 = device(list)
print(data_1.fname)

标签: pythonpython-3.x

解决方案


您必须在传递到类对象时解包列表,请尝试以下代码。

class data():
    def __init__(self, fname, lname, email):
        self.fname = fname
        self.lname= lname
        self.email = email

my_list = ['Steve','Harvy','steve.harvy@gmail.com']
#unpack the list using *
data_1 = data(*my_list)
print(data_1.fname)

out[] : Steve

#update : 从 txt 文件列表中读取值

with open ("file.txt","r") as f:
    lines = f.readlines()

for line in lines:
    mylist = eval(line)
    data_1 = data(*mylist)
    print(data_1.fname)

推荐阅读