Я написал следующий код для добавления листинга в класс Marketplace
, но он выдает ошибку, говоря, что .add_listing(
) отсутствует один позиционный аргумент, а add_listing
принимает self
и new_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_artwork
вызывается на Client
, он выдает следующую ошибку:
(veneer
является экземпляром Marketplace
который я использую в этом коде)
Traceback (most recent call last): File "script.py", line 45, in <module>
edytta.sell_artwork(girl_with_mandolin, '$6M (USD)')
File "script.py", line 30, in sell_artwork
veneer.add_listing(listed_artwork)
TypeError: add_listing() missing 1 required positional argument: 'new_listing'