gpt4 book ai didi

python - 对象没有属性 - 类之间共享变量名

转载 作者:行者123 更新时间:2023-12-01 09:19:39 25 4
gpt4 key购买 nike

我需要为 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)

帐户类:

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_account 是否正常工作,我在 Account 类中定义了“set_sales_rep”。我不确定错误是否是我在类之间错误地关联了“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)

关于python - 对象没有属性 - 类之间共享变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50901470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com