wyh551202 发表于 2022-10-11 16:42:27

2022-10-11 学习Python-Day17

今儿继续是class类 P62-64
###############################################P62 类与对象
class C:
    def __init__(self,x,y):
      self.x=x
      self.y=y
    def add(self):
      return self.x + self.y
    def mul(self):
      return self.x * self.y

c=C(2,3)
print(c.add())
print(c.mul())
print(c.__dict__)
class D(C):
    def __init__(self,x,y,z):
      C.__init__(self,x,y)
      self.z=z
    def add(self):
      return C.add(self)+self.z
    def mul(self):
      returnC.mul(self)*self.z
d=D(2,3,4)
print(d.add())
print(d.mul())

class A:
    def __init__(self):
      print('我是A')
class B1(A):
    def __init__(self):
      A.__init__(self)
      print('我是B1')
class B2(A):
    def __init__(self):
      A.__init__(self)
      print('我是B2')
class C(B1,B2):
    def __init__(self):
      B1.__init__(self)
      B2.__init__(self)
      print('我是C')
c=C()
print(c)
class B1(A):
    def __init__(self):
      super().__init__()
      print('我是B1')
class B2(A):
    def __init__(self):
      super().__init__()
      print('我是B2')
class C(B1,B2):
    def __init__(self):
      super().__init__()
      print('我是C')
c=C()
print(c)
print(C.mro())
###############################################P63 类与对象
class Animal:
    def __init__(self,name,age):
      self.name =name
      self.age =age
    def say(self):
      print(f'我叫{self.name},今年{self.age}岁。')
class FlyMixin:
    def fly(self):
      print('起飞')
class Pig(FlyMixin,Animal):
    def special(self):
      print('我们的技能是拱大白菜')
p=Pig('大肠',5)
p.say()
p.special()
p.fly()
################################
class Displayer:
    def display(self,message):
      print(message)
class LoggerMixin:
    def log(self,message,filename='logfile.txt'):
      with open(filename,'a') as f:
            f.write(message)
    def display(self,message):
      super().display(message)
      self.log(message)
class MySubClass(LoggerMixin,Displayer):
    def log(self,message):
      super().log(message)
subclass = MySubClass()
subclass.display('This is a test')
###########################################P64 对象与类
class Shape:
    def __init__(self,name):
      self.name=name
    def area(self):
      pass
class Square(Shape):
    def __init__(self,length):
      super().__init__('正方形')
      self.length=length
    def area(self):
      return self.length * self.length
class Circle(Shape):
    def __init__(self,radius):
      super().__init__('圆形')
      self.radius=radius
    def area(self):
      return self.radius * self.radius * 3.14
class Triangle(Shape):
    def __init__(self,base,high):
      super().__init__('三角形')
      self.base=base
      self.high=high
    def area(self):
      return self.base * self.high / 2
s=Square(5)
print(s.name,s.area())
c=Circle(6)
print(c.name,c.area())
t=Triangle(3,4)
print(t.name,t.area())

class Cat:
    def __init__(self,name,age):
      self.name=name
      self.age=age
    def intro(self):
      print(f'我是一只猫咪,我叫{self.name},我今年{self.age}岁')
    def say(self):
      print('mua')

class Dog:
    def __init__(self,name,age):
      self.name=name
      self.age=age
    def intro(self):
      print(f'我是一只小狗,我叫{self.name},我今年{self.age}岁')
    def say(self):
      print('汪')

class Pig:
    def __init__(self,name,age):
      self.name=name
      self.age=age
    def intro(self):
      print(f'我是一只小猪,我叫{self.name},我今年{self.age}岁')
    def say(self):
      print('哦')
c=Cat('web',4)
d=Dog('布布',7)
p=Pig('大肠',5)
def animal(x):
    x.intro()
    x.say()
animal(c)
animal(d)
animal(p)

class Bicycle:
    def intro(self):
      print('大海')
    def say(self):
      print('自行车')
b=Bicycle()
animal(b)
页: [1]
查看完整版本: 2022-10-11 学习Python-Day17