阿里云天池Python训练营

阿里云天池Python训练营

 

本节主要介绍python中的类与对象,并针对相关用法进行展开说明。其中拓展了需要掌握及区别的内容,对于类的用法及对象的含义需重点掌握。

 

一、类与对象

 

1. 对象 = 属性 + 方法

类定义对象的结构 以类为模板创建对象(对象是类的实例)

类不但包含方法定义 还包含所有实例共享的数据

封装:信息隐蔽技术

class 类名 :      

    类的实现

类的名称以大写字母开头

继承:子类自动共享父类之间数据和方法的机制

子类构造函数基础父类构造函数过程如下:      

实例化对象c ----> c 调用子类__init__() ---- > 子类__init__()继承父类__init__() ----- > 调用父类 __init__()

多态:不同对象对同一方法响应不同的行动

 

2. self 是什么?

类的方法必须有一个额外的第一个参数名称 按照惯例名称是 self

调用方法时 无需明确提供与参数 self 相对应的参数

 

3.魔法方法

如果对象实现某个魔法方法 该方法会在特殊的情况下自动调用

类的魔法方法:

__init__(self[, param1, param2...])

类实例化时自动调用

 

4.公有和私有

私有变量:在变量名或函数名前加上__(两个下划线)

私有属性:类外部无法直接进行访问

私有方法

 

5. 继承

派生类的定义:

class 派生类名(模块名1.基类名1,模块名2.基类名2, 模块名3.基类名3):

      类的实现1      

               .

     类的实现N

基类名:必须与派生类定义在一个作用域内 (可以类或表达式)

如果子类中定义与父类同名的方法或属性 自动覆盖父类对应的方法或属性

调用父类方法:

super().__init__()

解决多重继承问题

支持多继承的形式 但一般不使用

父类顺序:多重继承时 若是父类中有相同的方法名 而在子类使用时未指定时 从左到右在不同父类中查找

 

6. 类、类对象和实例对象

 

类对象:创建一个类 也是一个对象  只有一个

class 类名(object):

      pass

实例对象:通过实例化类创建的对象 可以有多个

类属性:类中方法外面定义的变量(属于类对象 多个实例对象间共享)

类属性通过 (类名.类属性)调用

实例属性:与具体的实例对象有关 (不同实例对象间属性不共享) 值属于调用self的对象

属性与方法名相同 属性会覆盖方法

 

7. 什么是绑定?

绑定:方法需要有实例才能被调用

对象的数据属性通常存储在名为.__ dict__的字典中 访问__dict__ 利用 vars()获取.__ dict__

 

8.内置函数(BIF)

issubclass(class, classinfo)

判断class是否是classinfo的子类

classinfo可以是类对象的元组 只要class是其中任何一个子类 返回True

一个类是其自身的子类

isinstance(object, classinfo)

判断对象是否已知类型

若object不是对象 永远返回False

classinfo不是类或者由类对象组成的元组 抛出TypeError

hasattr(object, name)

判断对象是否包含对应的属性

getattr(object, name[, default])

得到一个对象属性值

setattr(object, name, value)

设置属性值 属性不一定是存在的(对应函数 getattr())

delattr(object, name)

删除属性

class property([fget[, fset[, fdel[, doc]]]])

在新式类中返回属性值

fget:获取属性值 

fset:设置属性值

fdel:删除属性值

doc:属性描述信息

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值