Python Day10

~继承:
父类(公有的属性和方法)子类(特定的属性和方法)
class 子类(父类1,父类2…)
python支持多继承(一个子类可以有多个父类)
当多继承时。多个父类都有同样的方法,会按照继承列表依次查询(广度优先)
如果显式的写出继承谁,此类就是谁的子类,不写继承于谁则继承于object类(所有类的父类)
继承的传递性:子类可拥有父类和父类的父类的方法
~重写:
子类拥有和父同样的方法,叫重写override

class Person:
	def __init__(self,name,age):
		self.name=name
		self.age=age
	def show(self):
		print(f'姓名:{self.name}')
		print(f'年龄:{self.age}')
class Student(Person):
	def __init__(self,name,age,stu_no):
		super().__init__(name,age)#调用父类的初始化属性方法
		#super(Student,self).__init__(name,age)
		self.stu_no=stu_no
	def show(self):
        super(Student, self).show()
        print(f'学号:{self.stu_no}')
stu=Student('张三',18,'jk001')
stu.show()

python中无重载,后面的方法会覆盖前面的方法

dir(ss)#此方法可查看ss对象所对应的类继承的所有属性和方法
#__init__()初始化属性
#__new__()创建对象,开辟内存空间
#__str__()一般自定义类都会重写此方法,利用print直接输出,return一个字符串(也可用print函数里的输出格式),类似于java里的toString()方法

~多态:
在继承的基础上,重写父类的引用指向子类的对象
python不在乎数据类型,在乎有没有这样的行为,不易i的那个要继承,不一定要重写,只要有方法就可

class Pet:
	def eat(self):
		print('吃东西')
class Dog(Pet):
	def eat(self):
		print('吃骨头')
class Cat(Pet):
	def eat(self):
		print('吃小鱼')
class Bird(Pet):
	def eat(self):
		print('吃虫子')
class Manager:
	def Feed(self,pet):#此方法体现多态,所给参数是什么,就输出参数对应的方法
		pet.eat()
dog=Dog()
cat=Cat()
bird=Bird()
p1=Manager()
p1.Feed(dog)
p1.Feed(cat)
p1.Feed(bird)

~赋值,复制:

class Grade:
	def __init__(self,name)
		self.name=name
class Student:
	def __init__(self,name,grade):
		self.name=name
		self.grade=grade
	def __str__(self):
		return f'{self.name}属于{self.grade}'
grade=Grade()
stu1=Student('jack',grade)
stu2=stu1#赋值运算符,复制后,属于同一内存,修改可变对象会影响原对象,修改不可变对象则无影响

赋值符号:
默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的对象也会做相同的改变
浅拷贝:
对象空间中的数据,不管是可变对象还是不可变对象都把其地址拷贝,或对其属性不新开空间
影响:拷贝后的对象,如果修改可变对象的属性,会影响到原对象
import copy
对象名2=copy.copy(对象名1)
深拷贝:
包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变
import copy
对象名2=copy.deepcopy(对象名1)
拷贝越深影响越小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值