python和对象复习_面向对象阶段复习

面向对象阶段复习

一、类,对象,属性方法调用

class 类名(父类1,父类2):

静态属性 = '' # 静态属性,也叫类属性

def __init__(self): # 初始化方法

self.name = 'aa'

def func(self): # 动态属性 方法

print(self.age) # 这里的age可以是实例化后,通过对象.age = xxx 的方式添加的属性

对象 = 类名() # 实例化

对象.方法名() # 调用类里面的方法

对象.属性名 # 调用类里面的属性 对象即类里面的self

对象.name # 调用name属性

对象.age = 18 # 添加属性,与前面的print(self.age)相应

对象.func() # 实际上也等于类名.func(对象)

二、组合:表达什么有什么的问题,一个类都属性是另一个类的对象

# 组合:class 里面有 course

class course:

def __init__(self,name,price,period):

self.name = name

self.price = price

self.period = period

class class:

def __init__(self,name,course):

self.name = name

self.course = course # class类的属性course

#self.course_name = 'python' # 赋值

python = course('python xxx',18000,'6 months') # 实例化对象 course类的实例化对象

pys1 = class('pys_1',python) # 实例化对象,把python这个对像传入course中,即course的相关属性也对应传入

print(pys1.course.name) # 可以通过pys1查看到course的信息 组合的功能体现在这里

python.name = 'python sss' # 可以通过组合,修改一些参数,比较简单

print(pys1.course.name)

运行结果:

python xxx

python sss

命名空间:类和对象分别存在不同的命名空间中,互不影响

三、面向对象的三大特征:继承,多态,封装

1、继承

单继承:

父类(超类,基类)

子类(派生类):派生方法和派生属性

子类的对象在调用方法和属性:先用自己,自己没有采用父类的

多继承:

不会超过三个父类,最好不要超过三层

如果子类自己有用自己的,如果没有就用距离子类最近的那个父类的方法

抽象类和接口类

经典类和新式类,继承规则不同,深度优先和广度优先原则(面试的时候有可能会问到,平时用不到)

super只能在python3中使用 mro,是根据mro广度优先顺序找上一个类

2、多态(面试)

多态和鸭子类下

3、封装(面试)

私有的

__m名字

只能在类的内部调用,子类都无法继承

三个装饰器“

@property    规范,与@name.setterj结合用可以做出一些设置

@staticmethod

@classmethod   当一个方法只使用了类的静态变量时,就给这个方法加上@classmethod装饰器,默认传cls参数

希望与广大网友互动??

点此进行留言吧!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值