Basic Python Learning--Polymorphism

class DataBaseInterface:
    def __init__(self, db_name, db_path, tables):
        self.db_name = db_name
        self.db_path = db_path
        self.tables = tables

    def Init_Database(self):
        pass

    def Search_Database(self, column, conditions):
        pass

    def Update_Database(self, update_type, table, column):
        pass

    def Uninit_Database(self):
        pass


class ExcelDB(DataBaseInterface):
    def __init__(self, db_name, db_path, tables):
        super().__init__(db_name, db_path, tables)
        self.sheets = []
        self.active_sheet = "Sheet1"

    def Init_Database(self):
        print("ExcelDB Init_Database")

    def Search_Database(self, column, conditions):
        print("ExcelDB Search_Database")

    def Update_Database(self, update_type, table, column):
        print("ExcelDB Update_Database")

    def Uninit_Database(self):
        print("ExcelDB Uninit_Database")


db = ExcelDB("BCSC_STAFFS", ".", ["WX", "SZ", "SH"])

db.Init_Database()
db.Search_Database("Name", "Startwith A")
db.Update_Database("Add", "WX", "Name")
db.Uninit_Database()


class Sqlite(DataBaseInterface):
    def __init__(self, db_name, db_path, tables):
        super().__init__(db_name, db_path, tables)
        self.indexs = []

    def Init_Database(self):
        print("Sqlite Init_Database")

    def Search_Database(self, column, conditions):
        print("Sqlite Search_Database")

    def Update_Database(self, update_type, table, column):
        print("Sqlite Update_Database")

    def Uninit_Database(self):
        print("Sqlite Uninit_Database")

db = Sqlite("BCSC_STAFFS", ".", ["WX", "SZ", "SH"])
db.Init_Database()
db.Search_Database("Name", "Startwith A")
db.Update_Database("Add", "WX", "Name")
db.Uninit_Database()


class Oracle(DataBaseInterface):
    def __init__(self, db_name, db_path, tables):
        super().__init__(db_name, db_path, tables)
        self.indexs = []
        self.relations = []

    def Init_Database(self):
        print("Oracle Init_Database")

    def Search_Database(self, column, conditions):
        print("Oracle Search_Database")

    def Update_Database(self, update_type, table, column):
        print("Oracle Update_Database")

    def Uninit_Database(self):
        print("Oracle Uninit_Database")

db = Oracle("BCSC_STAFFS", ".", ["WX", "SZ", "SH"])

db.Init_Database()
db.Search_Database("Name", "Startwith A")
db.Update_Database("Add", "WX", "Name")
db.Uninit_Database()


class Animal:
    def __init__(self, name, gender, age):
        self.gender = gender
        self.age = age
        self.name = name

    def __enter__(self):
        print("Animal __enter__")
        return self

    def speak(self):
        print("I am " + self.name)

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Animal __exit__")
        print("type:", end="")
        print(exc_type)
        print("val:", end="")
        print(exc_val)
        print("trace:", end="")
        print(exc_tb)


# with Animal("xxxxx", "male", 3) as an:
#     an.speak()
#
# exit()

class Dog(Animal):
    def __init__(self, name, gender, age, color, speed):
        super().__init__(name, gender, age)
        self.color = color
        self.speed = speed

    def run(self):
        print("Dog Speed is ", self.speed)

    def speak(self):
        print("This is dog: ", self.name)


class Cat(Animal):
    def __init__(self, name, gender, age, color, speed):
        super().__init__(name, gender, age)
        self.color = color
        self.speed = speed

    def run(self):
        print("Cat Speed is ", self.speed)

    def speak(self):
        print("This is cat: ", self.name)

animals = []
mm = Cat("miao", "female", 8, "white", 25)
animals.append(mm)
ww = Dog("wang", "male", 10, "black", 20)
animals.append(ww)

for an in animals:
    an.run()
    an.speak()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值