Только недавно начал изучать классы, посмотрите пожалуйста мой код и подскажите как из одного экземпляра класса в Python добраться в другой!
class User:
def __init__(self, user_fields):
# так можно делать?
for k, v in user_fields.items():
self.__dict__.__setitem__(k, v)
def save(self):
print('Как отсюда можно получить доступ к переменной token в MyApi или вызвать some_func() ???')
class MyApi:
def __init__(self, token, users_data):
self.token = token
self.users = [User(user) for user in users_data]
def some_func(self):
print(self.token)
users_data = [
{
'name': 'andrey',
'age': 25
},
{
'name': 'dima',
'age': 12
}
]
api = MyApi('12345', users_data)
user = api.users[0]
user.save()
print('User name:', user.name)
Вот мой вариант решения:
class User:
def __init__(self, api, user_fields):
# так можно делать?
for k, v in user_fields.items():
self.__dict__.__setitem__(k, v)
def save(self):
print('Вызываю some_func() из class User, token:', api.some_func())
class MyApi:
def __init__(self, token, users_data):
self.token = token
self.users = [User(self, user) for user in users_data]
def some_func(self):
return self.token
users_data = [
{
'name': 'andrey',
'age': 25
},
{
'name': 'dima',
'age': 12
}
]
api = MyApi('12345', users_data)
user = api.users[0]
user.save()