Python modules. Define the Artist class in Artist.py with a constructor to initialize an artist's information. The constructor should by default initialize the artist's name to "None" and the years of birth and death to 0. Define the Artwork class in Artwork.py with a constructor to initialize an artwork's information. The constructor should by default initialize the title to "None", the year created to 0, and the artist to use the Artist default constructor parameter values. Add an import statement to import the Artist class. Add import statements to main.py to import the Artist and Artwork classes. Ex: If the input is: Pablo Picasso 1881 1973 Three Musicians 1921 the output is: Artist: Pablo Picasso (1881-1973) Title: Three Musicians, 1921 main.py: TODO: Import Artist from Artist.py and Artwork from Artwork.py if __name__ == "__main__": user_artist_name = input() user_birth_year = int(input()) user_death_year = int(input()) user_title = input() user_year_created = int(input()) user_artist = Artist(user_artist_name, user_birth_year, user_death_year) new_artwork = Artwork(user_title, user_year_created, user_artist) new_artwork.print_info() Artist.py: class Artist: # TODO: Define constructor with parameters to initialize instance attributes # (name, birth_year, death_year) def print_info(self): if self.death_year == -1: print('Artist: {}, born {}'.format(self.name, self.birth_year)) else: print('Artist: {} ({}-{})'.format(self.name, self.birth_year, self.death_year)) Artwork.py: # TODO: Import Artist from Artist.py class Artwork: # TODO: Define constructor with parameters to initialize instance attributes # (title, year_created, artist) def print_info(self): self.artist.print_info() print('Title: %s, %d' % (self.title, self.year_created))
Python modules.
Define the Artist class in Artist.py with a constructor to initialize an artist's information. The constructor should by default initialize the artist's name to "None" and the years of birth and death to 0.
Define the Artwork class in Artwork.py with a constructor to initialize an artwork's information. The constructor should by default initialize the title to "None", the year created to 0, and the artist to use the Artist default constructor parameter values. Add an import statement to import the Artist class.
Add import statements to main.py to import the Artist and Artwork classes.
Ex: If the input is:
Pablo Picasso
1881
1973
Three Musicians
1921
the output is:
Artist: Pablo Picasso (1881-1973)
Title: Three Musicians, 1921
main.py:
TODO: Import Artist from Artist.py and Artwork from Artwork.py
if __name__ == "__main__":
user_artist_name = input()
user_birth_year = int(input())
user_death_year = int(input())
user_title = input()
user_year_created = int(input())
user_artist = Artist(user_artist_name, user_birth_year, user_death_year)
new_artwork = Artwork(user_title, user_year_created, user_artist)
new_artwork.print_info()
Artist.py:
class Artist:
# TODO: Define constructor with parameters to initialize instance attributes
# (name, birth_year, death_year)
def print_info(self):
if self.death_year == -1:
print('Artist: {}, born {}'.format(self.name, self.birth_year))
else:
print('Artist: {} ({}-{})'.format(self.name, self.birth_year, self.death_year))
Artwork.py:
# TODO: Import Artist from Artist.py
class Artwork:
# TODO: Define constructor with parameters to initialize instance attributes
# (title, year_created, artist)
def print_info(self):
self.artist.print_info()
print('Title: %s, %d' % (self.title, self.year_created))
Here I have created the class Artist with the init method where I have assigned the values to the data member of the class which is passed by the user from the main method. Then I have created the print_info method to print the details of the Artist along with the condition for death_year as per the question
Now I have defined the class Artwork with the init method where I have assigned the values to the data member of the class which is passed by the user from the main method. Then I have created the print_info method to print the details of the Artwork, but before that, I have called the print_info method from the class Artist to first print the information of Artist and then the information of the Artwork
At last, I have the main method in which I have first of all asked the user for input and then, I have created the object of both the classes. Now I have used the object of class Artwork to call the print_info method to display the result.
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 1 images