对象没有在类之间共享的属性变量名

2024-06-24 12:51:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要给SalesRep分配一个新帐户,同时更新我的Account类,让Leslie作为它的销售代表

我收到错误:

'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

我所要做的就是测试在SalesRep类中add\u account是否正常工作,我已经在Account类中定义了'set\u sales\u rep'。我不确定错误是因为我在类之间错误地关联了'set\u sales\u rep',还是顶部的print()函数调用错误。你知道吗


Tags: nameselfreturndef错误accountfirstlast
1条回答
网友
1楼 · 发布于 2024-06-24 12:51:40
rep_1 = SalesRep('Leslie', 'Knope', ['acct1', 'acct2', 'acct3'])
print(rep_1.add_account('acct4'))

您正在传递一个字符串来添加帐户,而不是帐户对象。你知道吗

创建account对象acc = Account(name="acc4"),然后将其传递给add\u account,rep_1.add_account(acc)。你知道吗

相关问题 更多 >