如何使用for循环从变量添加属性?

时间:2019-06-01 02:21:20

标签: python python-3.x

所以我是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:“用户”对象不可迭代

我该如何做?

1 个答案:

答案 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)