Мне нужно назначить новую учетную запись SalesRep
а также обновить мой класс Account
чтобы иметь Лесли в качестве продавца.
Я получаю ошибку:
'str' object has no attribute 'set_sales_rep'
Когда я тестирую следующие строки:
rep_1 = SalesRep('Leslie', 'Knope', ['acct1', 'acct2', 'acct3'])
print(rep_1.add_account('acct4'))
Класс SalesRep
:
class SalesRep(object):
def __init__(self, first_name, last_name, accounts=None):
self.first_name = first_name
self.last_name = last_name
self._accounts = []
if accounts:
self._accounts.extend(accounts)
def __str__(self):
return "{self.first_name} {self.last_name}".format(self=self)
def get_accounts(self):
return self._accounts
def add_account(self, account):
self._accounts.append(account)
account.set_sales_rep(self)
Класс Account
:
class Account(object):
def __init__(self, name, sales_rep=None, segments=None):
self.name = name
self._sales_rep = sales_rep
self._segments = []
if segments:
self._segments.extend(segments)
def __str__(self):
return "{self.name}".format(self=self)
def get_sales_rep(self):
return self._sales_rep
def set_sales_rep(self, sales_rep):
self._sales_rep = sales_rep
Все, что я пытаюсь сделать, это проверить, что add_account в классе SalesRep
работает, у меня есть "set_sales_rep", определенный в классе Account
. Я не уверен, что ошибка в том, что я неправильно связываю "set_sales_rep" между классами или вызов функции print()
наверху неправильно.
rep_1 = SalesRep('Leslie', 'Knope', ['acct1', 'acct2', 'acct3'])
print(rep_1.add_account('acct4'))
Вы передаете строку вместо add_account вместо объекта учетной записи.
Создайте объект учетной записи, acc = Account(name="acc4")
, а затем передайте его в add_account, rep_1.add_account(acc)
.
print()
отобразитNone
потому что методSalesRep.add_account()
ничего не возвращает ...