python基础方面二

本文详细介绍了 Python 面向对象编程的核心概念,包括公有与私有变量的区别、特殊方法(如 __init__ 和 __str__)、类属性与实例属性、类方法与静态方法等,并解释了多态的概念及其实现方式。

第二部分  对象与内建函数

对象

xx: 公有变量

_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问

__xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)

__xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__ , __ 不要自己发明这样的名字

xx_:单后置下划线,用于避免与Python关键词的冲突

__init__(self,x,y) 初始化可以传参数  不需要返回值  self对象是__new__返回的值

__str__(self):实例字符串表示,可读性  print(类实例),如没实现,使用repr结果

__repr__  实例字符串表示,准确性  类实例 回车 或者 print(repr(类实例))

__del__(self): 删除对象时默认调的方法  del 对象 来删除对象(引用计数减1)

__new__ (cls)  return object.__new__(cls)还可以通过父辈的__new__

__dict__  实例自定义属性 vars(实例.__dict__)

__doc__ 类文档,子类不继承  help(类或实例)

__getattribute__ 属性访问拦截器  访问实例属性时  object.__getattribute__(self,obj) no self.test

__bases__ 类的所有父类构成元素  类名.__bases__

__all__ 如果文件中有它,那么这个变量中的元素,不会被from xxx import *时导入

__class__ 实例所在的类  实例.__class__

__name__  可以在模块中测试功能 一般 if __name__ ==__"main"

__metaclass__可以指定元类来创建对象

__slots__  限制动态创建属性方法 __slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的

调用父类 super

多态 定义时的类型和运行时的类型不一样,此时就成为多态    执行一个方法,只有在执行时才能知道执行的是父类,还是子类

python 的面 向对象的三个基本要素,封装继承多态

类属性,所有类对象和实例对象共有,内存只有一份  #实例属性会屏蔽掉同名的类属性

类方法 @classmethod 第一个参数必须是类对象,一般以cls作为第一个参数

静态方法  @staticmethod  静态方法中引用类属性的话,必须通过类对象来引用

内建函数  sorted 排序  reduce 累加元素 filter 过滤  map根据函数对指定序列映射  range  生成器partial函数(偏函数)  把一个函数的某些参数设置默认值,返回一个新的函数,调用这个新函数会更简单。

wraps函数  也是个装饰器,作用是避免函数文档被装饰器覆盖

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值