所以我是python的初学者,就像我学习第3天一样,如果这对您来说太明显了,我感到抱歉。
我正在创建一个名为Users()的类,该类将first_name,last_name,user_name和password作为参数,并且我不想通过for循环将其值分配给self
我首先用self和参数定义__init_,然后是一个像这样的for循环:
def __init__(self, name, lastName, user, password):
for i in self:
self.i = i
所以我不必这样做
def __init__(self, name, lastName, user, password):
self.name = name
self.lastName = lastName
self.user = user
self.password = password
但是它不起作用
我收到此错误: 对于我自己: TypeError:“用户”对象不可迭代
我该如何做?
答案 0 :(得分:1)
作为初学者(甚至更多是专家),您应该以最简单的方式进行操作。使用第二种形式:
def __init__(self, name, lastName, user, password):
self.name = name
self.lastName = lastName
self.user = user
self.password = password
也就是说,Python3.7引入了dataclasses。因此,如果您急于定义一个类,则可以通过这种方式进行操作(未经测试,可能有错字):
import dataclasses
@dataclasses.dataclass()
class User():
first_name: str
last_name: str
username: str
password: str
u = User('Bob', 'Marley', 'bm', 'bob')
print(u)