Python 为什么这个类要使用;“自我”;作为一个位置参数?
我编写了以下代码来向Python 为什么这个类要使用;“自我”;作为一个位置参数?,python,Python,我编写了以下代码来向Marketplace类添加列表,但它抛出了一个错误,即.add\u Listing()缺少一个位置参数,而add\u Listing将self和new\u Listing作为参数。我试图删除self以查看发生了什么,但它抛出了另一个错误 看一看: class Marketplace: def __init__(self): self.listings = [] def add_listing(self, new_listing):
Marketplace
类添加列表,但它抛出了一个错误,即.add\u Listing(
)缺少一个位置参数,而add\u Listing
将self
和new\u Listing
作为参数。我试图删除self以查看发生了什么,但它抛出了另一个错误
看一看:
class Marketplace:
def __init__(self):
self.listings = []
def add_listing(self, new_listing):
self.listings.append(new_listing)
def remove_listing(self, listing):
self.listings.remove(listing)
def show_listings(self):
for listing in self.listings:
print(listing)
class Client:
def __init__(self, name, location, is_museum):
self.name = name
self.location = location
self.is_museum = is_museum
def sell_artwork(self, artwork, price):
if artwork.owner == self:
listed_artwork = Listing(artwork, price, self)
veneer.add_listing(listed_artwork)
class Listing:
def __init__(self, art, price, seller):
self.art = art
self.price = price
self.seller = seller
def __repr__(self):
return '{}: {}'.format(self.art.title, str(self.price))
在客户机上调用.sell\u artwork
时,会抛出以下错误:
(spine
是我在此代码中使用的Marketplace
的一个实例)
Traceback(最近一次调用last):文件“script.py”,第45行,在
edytta.出售艺术品(有曼陀林的女孩,'600万美元)'
文件“script.py”,第30行,在sell_artwork中
单板。添加单板(单板艺术品)
TypeError:add_listing()缺少1个必需的位置参数:“new_listing”
您是否编写了spine=Marketplace
而不是spine=Marketplace()
?(而且,spine
可能应该是方法的参数,而不是客户机
类所依赖的全局变量。)@chepner谢谢,我调用了Marketplace而没有括号,这就解决了问题!您是否编写了spine=Marketplace
而不是spine=Marketplace()
?(另外,spine
应该是该方法的参数,而不是客户机
类所依赖的全局变量。)@chepner谢谢您,我调用了Marketplace而没有括号,这就解决了问题!