-
-
Save codecademydev/8d844af5febcff7567f46b4df8e51819 to your computer and use it in GitHub Desktop.
Codecademy export
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Art: | |
def __init__(self, artist, title, medium, year, owner): | |
self.artist = artist | |
self.title = title | |
self.medium = medium | |
self.year = year | |
self.owner = owner | |
def __repr__(self): | |
return '%s. "%s". %s, %s. %s, %s.' % (self.artist, self.title, self.year, self.medium, self.owner.name, self.owner.location) | |
class Marketplace: | |
def __init__(self): | |
self.listings = [] | |
def add_listing(self, new_listing): | |
self.listings.append(new_listing) | |
def remove_listing(self, expired_listing): | |
self.listings.remove(expired_listing) | |
def show_listings(self): | |
for x in self.listings: | |
print(x) | |
class Client: | |
def __init__(self, name, location, is_museum): | |
self.name = name | |
self.is_museum = is_museum | |
if is_museum: | |
self.location = location | |
else: | |
self.location = "Private Collection" | |
def sell_artwork(self, artwork, price): | |
if artwork.owner == self: | |
new_listing = Listing(artwork, price, self) | |
veneer.add_listing(new_listing) | |
def buy_artwork(self, artwork): | |
if artwork.owner != self: | |
art_listing = None | |
for listing in veneer.listings: | |
if listing.art == artwork: | |
art_listing = listing | |
break | |
if art_listing != None: | |
art_listing.owner.art = self | |
veneer.remove_listing(art_listing) | |
class Listing: | |
def __init__(self, art, price, seller): | |
self.art = art | |
self.price = price | |
self.seller = seller | |
def __repr__(self): | |
return '%s for %s.' % (self.art.title, self.price) | |
veneer = Marketplace() | |
veneer.show_listings() | |
edytta = Client("Edytta Halpirt", None, False) | |
moma = Client("The MOMA", "New York", True) | |
girl_with_mandolin = Art("Picasso, Pablo", "Girl with a Mandolin (Fanny Tellier)", "Oil on Canvas", 1910, edytta) | |
edytta.sell_artwork(girl_with_mandolin, "$6M (USD)") | |
veneer.show_listings() | |
moma.buy_artwork(girl_with_mandolin) | |
print(girl_with_mandolin) | |
veneer.show_listings() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment