Python-面向对象学习

常用内置属性

__init__:所有的属性包含在内
__equal__:比较方法,默认比较地址,比较内容需要重写
__ge__:比较大小,大于等于
__gt__:>
__lt__:<
__le__:<=
__str__:默认返回地址
__del__:销毁
__slots__:规定不能随意增加属性

内置属性

使用dir(对象名) 列出所有对象所支持的所有属性和函数

对象属性和类属性

类属性

类属性:可以通过类对象和实例对象获取。 类属性只能通过类对象来修改,实例对象无法修改类属性;也就是在内置属性以外创建的。
直接赋值改变类属性;

calss Person(object):
	type = 'human'
	def __init__(self,name,age):
		self.name = name
		self.age = age
#实例化
p = Person('Mary',20)
#不能需改,在p中新增了一个对象属性
p.type='dog'
#修改类属性
Person.type='cat'

私有属性和方法

私有属性

两个下划线开始的变量是私有变量。一般只在类的内部使用,可以定义为私有变量。
Python没有真正意义上的私有
例如:self.__money是私有变量
不可以通过__money直接访问

  1. 可以使用 对象名._类名__私有变量名 获取
  2. 在类的外部通过调用方法来显示

类方法&静态方法

通过类访问实例方法:类名.方法名(实例对象名,参数)

类方法

特点
标识关键字:@classmethod (加在前面
类方法的第一个参数是:cls(代表当前类

静态方法

特点
静态方法需要使用修饰器@staticmethod来标识。
通过类名.静态方法名的方式调用静态方法。不需要创建对象。

继承

python支持多继承
多继承的问题,两个父类中有同名的方法,继承按照定义顺序从左到右依次继承,防止继承的时候引起混乱(先来后到。

  • 默认继承object类,可以省略。
  • 可以继承多个类,java只可以有一个父类
  • _mro _可以查看方法的调用顺序,print(c._mro_)
    调用方式

方法的重写

  • 完全重写
  • 在需要的位置使用super()父类方法
    重写
  • 其他方法重写

补充

is & isinstance的使用
is :身份运算符,用来比较是否是同一个对象。
isinstance :用来判断一个对象是否是由指定的类(或父类)实例化出来的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值