Untitled
plain_text
24 days ago
3.4 kB
2
Indexable
Never
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")