TJCLK
TJCLK

Reputation: 183

How to assign values to class instance attributes in a loop

class User:
    num_of_user = 0
    def __init__(self,name):
        self.name = name
        User.num_of_user += 1

user_1 = User('A')
user_2 = User('B')
....

class Value(User):
    def __init__(self,name,value):
        User.__init__(self, name)
        self.value = value

# --> user_1.value = read a new manual input
# --> user_2.value = read a new manual input
....

I am not familiar with how to present instances/attributes correctly in Class.

How to write above comment in a For loop?

Upvotes: 0

Views: 2687

Answers (2)

LenglBoy
LenglBoy

Reputation: 1451

Add all created User_X instances to a List/Array (users/userList) and iterate through it.

# step by step
user_1 = User("A")
user_2 = User("B")
user_3 = User("C")

users = []
users.append(user_1)
users.append(user_2)
users.append(user_3)

# Better way with less instances
users = [User("A"), User("B"), User("C")]

Now you can add a simply iteration like:

for user in users:
  user.value = <SOME INPUT>

Upvotes: 1

surya singh
surya singh

Reputation: 440

This will do,

class User:
    num_of_user = 0
    def __init__(self,name):
        self.name = name
        User.num_of_user += 1

names = ['A','B','C','D']
users = []
for name in names:
    users.append(User(name))

for user in users:
   user.value = 'input from user'

Upvotes: 2

Related Questions