今天我试图创建一个类。 我写的
from first_names_class import firstnames
from last_names_class1 import lastnames
from object_name_list import my_new_list
class MyClass:
"""A Class with automatated full names."""
# Automatically create the instances of the class named user_indexfrom the rangeiterator
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
for i in range(0, 49):
my_new_list[i] = MyClass(firstnames[i], lastnames[i])
print(user1.first_name)
但是,当我运行它时,它说:
回溯(最近通话最近): ['1','2','3','4','5','6','7','8','9','10','11','12',' 13”,“ 14”,“ 15”,“ 16”,“ 17”,“ 18”,“ 19”,“ 20”,“ 21”,“ 22”,“ 23”,“ 24”,“ 25” ,“ 26”,“ 27”,“ 28”,“ 29”,“ 30”,“ 31”,“ 32”,“ 33”,“ 34”,“ 35”,“ 36”,“ 37”,“ 38”,“ 39”,“ 40”,“ 41”,“ 42”,“ 43”,“ 44”,“ 45”,“ 46”,“ 47”,“ 48”,“ 49”,“ 50” ] 文件“ /用户/ myname /文档/大学/用于定量分析的程序/MyFirstClass.py”,第15行,在 打印(user1.first_name) NameError:未定义名称“ user1” ['user1','user2','user3','user4','user5','user6','user7','user8','user9','user10','user11','user12','用户13','用户14','用户15','用户16','用户17','用户18','用户19','用户20','用户21','用户22','用户23','用户24','用户25' ,'user26','user27','user28','user29','user30','user31','user32','user33','user34','user35','user36','user37','用户38','用户39','用户40','用户41','用户42','用户43','用户44','用户45','用户46','用户47','用户48','用户49','用户50' ]
我对此的想法: 我不知道我是否正确,但是我在另一个线程中读到,不应缩进类的对象/实例,因为它将被“作为类的内容”读取。
另一方面,for循环要求我将这段文本缩进。
如果我所说的正是问题,该如何解决这个问题。
如果我说的是错误的,那么我该如何解决此NameError问题。
也许与我从中获取对象名称的列表有关。由于它们是字符串,可能是麻烦制造者。
如果能解决这个问题,我将不胜感激。
答案 0 :(得分:1)
使用索引符号访问列表中的元素:
print(my_new_list[0].first_name)
您的缩进没有错。
您从未定义符号user1
...您仅拥有my_new_list
类型的list
,可以使用[id]
来访问元素。
答案 1 :(得分:0)
我使用了一些伪列表进行演示,但是通过这种设置,您将访问类似
的值。first = ['vash', 'billy']
last = ['stampede', 'stack']
class MyClass:
def __init__(self, f_name, l_name):
self.first_name = f_name
self.last_name = l_name
self.full_name = f_name + ' ' + l_name
user = [MyClass(first[idx], last[idx]) for idx, item in enumerate(first)]
print(user[0].first_name)
print(user[1].first_name)
[print(user[idx].full_name) for idx, item in enumerate(user)]
~/python/stackoverflow/9.23$ python3.7 dicta.py vash billy vash stampede billy stack