python第六天

类的成员分析:
  • 类和对象都可以是存储成员,成员可以归类所有也可以归对象所有
  • 类存储成员时使用的是与类关联的一个对象
  • 独享存储成员是存储在当前对象中
  • 对象访问一个成员是,如果对象中没有该成员,尝试访问类中的同名成员,有此成员时,就访问此成员
  • 类实例-----类存储-------定义类
    对象实例------对象存储空间-------定义对象

类实例的构成就是键值对,用A._dict_查看类实例的所有成员
类实例和对象实例中的值是指向关系,用的是同一份数据,类实例的属性和其对象的实例的属性在
不对对象赋值的前提下,指向同一个变量
赋值以后就会发生改变
创建对象的时候类中的成员不会放入对象当中,而是得到一个空对象,没有成员,通过对象对类中成员重新赋值或者通过对象添加成员时,对应成员会保存在对象中,而不会修改成员
关于self
在对象的方法中代表当前对象本身,如果通过对象调用了一个方法,那么该对象会自动传入当前方法的第一个参数中
self不是关键字,只是一个用于接受对象的普通参数,可以用任何一个变量名代替
方法中有self形参的方法成为非绑定类的方法,可以通过对象访问,没有self的是绑定类的方法,只能通过类访问比如:

class Teacher():
	 name = "wang"
	 age=19
	 def say(self):
	 	print("hello")
	 def sayAgain():
	 	print("hello nice")	
	 	print(_class_.name)
t = Teacher()
t.say()      ——————————这就属于通过对象访问,非绑定类方法
Teacher.sayAgain()  ————————————这就属于通过类访问,

使用类访问绑定类的方法时,如果类方法中需要访问当前类的成员,可以通过_class_成员名访问
鸭子模型

class A():
	name = "aaaa"
	age = 18
	def _init_(self):
	self.name = "sss"
	self.name= 19
	def say(self) :
		print(self.name)
		print(self.age)
class B():
	name="ccc"
	age = 20

a=A()
a.say()

A.say(a)
A.say(A)
A.say(B)

对象的参数特性:封装,继承,多态
封装:对对象成员进行访问控制
封装的三个级别

  • 公开 public
  • 受保护的 protected
  • 私有的 private

这不是关键字,判别对象的位置

  • 对象内部:
  • 对象外部:
  • 子类中

私有:私有成员是最高级别的封装,只能在当前类或者对象中访问
在成员面前加两个下划线即可__age就是私有变量
用 类名.dic 查看所有变量
访问私有变量:_类名__变量
protected 受保护的封装 是将对象成员进行一定级别的封装,然后在类中或者子类中都可以进行访问,在外部不可以
封装方法:在成员名称前添加一个下划线
公共的,公开的:public,任何情况都可以使用
继承:继承就是一个类可以获得另一个类中的成员属性和成员方法
继承的作用:减少代码,增加代码的复用功能,同时可以设置类与类直接的关系
继承与被继承的概念:
被继承的类叫父类,也叫基类也叫超类
用于继承的类叫自类,也叫派生类
继承与被继承存在一个is-a关系
语法:class 子类(继承类)
所有的类都继承自object类,即所有的类都是object类的子类
子类一旦继承父类,就可以使用父类除私有成员外的所有内容
子类继承到父类并没有将父类成员完全赋值到子类中,而是通过引用关系访问调用
子类可以定义独有的成员属性和方法
子类父类成员相同优先使用子类
子类如果想扩充父类的方法,可以在定义新方法的同时访问父类成员进行代码重用,可以使用[父类名.父类成员],也可以使用[super().父类成员]的格式来调用
继承变量函数的查找顺序问题:
1.优先查找自己的变量
2.没有则查找父类
3.构造函数如果本类中没有定义,则自动查找调用父类函数
4.如果本类有定义,则不再继续向上查找
构造函数:
实例化的时候第一个被调用
主要工作进行时初始化,因而得名
子类找到了构造函数,则不再查找父类的构造函数,如果没找到就直接查找父类的构造函数

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值