Untitled

mail@pastecode.io avatarunknown
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")