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]