Untitled
unknown
plain_text
2 years ago
3.4 kB
13
Indexable
class ProgrammingLanguage:
def __init__(self, name, paradigm, version):
self.name = name
self.paradigm = paradigm
self.__version = version
def setVersion(self, version):
self.__version = version
def getVersion(self):
return self.__version
def aboutLanguage(self):
print(f"Language Name: {self.name}\nParadigm: {self.paradigm}\nVersion: {self.__version}")
class Python(ProgrammingLanguage):
versionLibraries = {}
def __init__(self, name, paradigm, version):
super().__init__(name, paradigm, version)
self.libraries = []
print(f"{self.name}{self.getVersion()}, the most versatile programming language of 2023. ")
def aboutLanguage(self):
super().aboutLanguage()
print(f"Libraries: {self.libraries}")
def addLibrary(self, *libs):
self.libs = list(libs)
for lib in self.libs:
self.libraries.append(lib)
x = self.name + self.getVersion()
Python.versionLibraries[x] = self.libraries
@classmethod
def suggestLibraries(cls, requirement):
req_1 , req_2 = requirement.split(' for ')
found = False
for version, libraries in cls.versionLibraries.items():
for library in libraries:
first, second = library.split('-')
if req_2 == second:
print(f"{first} of {version} satisfies your requirement")
found = True
if not found:
print(f"No match found for your requirement: {requirement}")
def updateVersion(self, new_version):
print(f"Downloading Python version {new_version}...")
self.setVersion(new_version)
print(f"Successfully installed Python version {new_version}")
print("1==========================")
pythonV1 = Python("Python", "dynamic and multiparadigm", "3.7")
print("2==========================")
print(f"All python versions with libraries: {Python.versionLibraries}")
print("3==========================")
pythonV1.aboutLanguage()
print("4==========================")
pythonV1.addLibrary("NumPy-numerical computing", "Django-web development")
print("5==========================")
print(f"All python versions with libraries: {Python.versionLibraries}")
print("---------------------------")
pythonV1.aboutLanguage()
print("6==========================")
Python.suggestLibraries("Python library for machine learning")
print("7==========================")
Python.suggestLibraries("Python library for web development")
print("8==========================")
pythonV1.updateVersion("3.9")
print("9==========================")
pythonV1.aboutLanguage()
print("10==========================")
pythonV2 = Python("Python", "dynamic and multiparadigm", "3.10")
print("11==========================")
pythonV2.aboutLanguage()
print("12==========================")
pythonV2.addLibrary("Keras-machine learning", "Matplotlib-data visualization")
print("13==========================")
print(f"All python versions with libraries: {Python.versionLibraries}")
print("---------------------------")
pythonV2.aboutLanguage()
print("14==========================")
Python.suggestLibraries("Python library for image processing")
print("15==========================")
Python.suggestLibraries("Python library for machine learning")
Editor is loading...