美文网首页Pythonpython
Python基础(五)类和对象

Python基础(五)类和对象

作者: 鹊南飞_ | 来源:发表于2019-09-27 00:39 被阅读0次

1. 类和对象

1. 定义类

class 类名:
        执行语句...
        零到多个类变量...
        零到多个方法...
  1. 类名:由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母小写,单词与单词之间不要使用任何分隔符
  2. 类变量属于类本身,用于定义该类本身所包含的状态数据
  3. 实例变量属于该类的对象,用于定义对象所包含的状态数据
  4. 方法则用于定义该类的对象的行为或功能实现
  5. init构造方法,del析构方法
类的定义

2. 对象的产生和使用

对象的产生
对象的使用

3. 实例方法

对于在类体中定义的实例方法,Python会自动绑定方法中的第一个参数(通常建议将该参数命名为self),第一个参数总是指向调用该方法的对象。在构造方法中,self参数(第一个参数)代表该构造方法正在初始化的对象。

class Dog:
    def run(self):
        print('这是run方法')
    def jump(self):
        self.run()
        print('这是jump方法')

2. 方法

方法是类或对象的行为特征的抽象

1. 类也能调用实例方法

# 全局变量的定义
def foo():
     print('全局变量的foo方法')
bar = 200
class Brid:
    # 定义Bird空间的foo函数
    def foo():
        print('Bird空间的foo方法')
    def walk(self):
        print(self,'正在走')
    bar = 200
# 调用
foo()
print(bar)

Brid.foo()
print(Brid.bar)
# Brid.walk() 报错
Brid.walk('abc')

2. 类方法与静态方法

@classmethod 装饰的是类方法,类方法的第一个参数(建议用cls参数)
@staticmethod 装饰的是静态方法


类方法与静态方法

3. @函数装饰器

示例

当程序使用“@函数”(比如函数A)装饰另一个函数(比如函数B),实际上完成以下两步:

  1. 将被装饰的函数(函数B)作为参数传给@符号引用的函数(函数A)
  2. 将函数B替换(装饰)成第1步返回的结果

可以看出被装饰的函数,不再是原来的函数,而是替换成一个新的东西。

示例2

上面定义了一个装饰器函数foo,执行完返回的不是普通值,而是bar函数,这意味着被@foo修饰的函数最终都会被替换成bar函数。上面程序使用@foo装饰my_test,因此程序会执行foo(my_test),并将my_test替换成foo()函数的返回值:bar函数。程序会两次调用my_test()函数,其实是调用bar()函数

4. 类命名空间

3. 成员变量

1. 类变量和实例变量

类变量 实例变量

2. 使用property函数定义属性

propetty(fegt=None,fset=None,fdel=None,doc=None)

4. 隐藏和封装

python并不能真正的支持封装
只要将Python类的成员命名为以双下划线开头的,python就会将他们隐藏起来

5. 类的继承

1. 单继承

class SubClass(superClass1, superClass2, ...):
    # 类定义部分
类的继承

2. 多继承

虽然在语法上明确支持多继承,但通产推荐,如果不是很有必要,尽量不要使用多继承,避免很多麻烦
当一个子类有很多个直接父类时,该子类会继承得到所有父类的方法。如果多个父类有同名的方法,排在前面的父类中的方法会”遮蔽“在后面的父类中的同名方法。

3. 重写父类的方法

重写父类的方法

4. 使用未绑定方法调用被重写的方法

使用未绑定方法调用被重写的方法

5. 使用super函数调用父类的构造方法

排在前面的父类的同名方法会遮蔽后面父类的同名方法


没有使用super函数 使用super函数

6. Pthon的动态性

1. 动态属性与slots

2. 使用type()函数定义类

3. 使用metaclass

7. 多态

8. 枚举类

相关文章

  • Python基础(五)类和对象

    1. 类和对象 1. 定义类 类名:由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母小写,单词与单...

  • python语法入门五

    类和对象 类和对象 基础 继承:python为多继承 类、类对象和实例对象 当实例对象声明后,再删除类对象,那么该...

  • Python基础入门6_文件和异常

    Python 基础入门前五篇: Python 基础入门--简介和环境配置 Python基础入门_2基础语法和变量类...

  • Python基础总结(五)(类和对象)

    self参数 类中定义的每个方法的第一个参数都是self,这个参数指向调用方法的对象本身(你可以给它指定任何一个名...

  • Python基础 - 类和对象

    知识回顾 1.类:拥有相同属性和相同功能的对象的集合 属性:存储数据(对象属性,类的字段)功能:方法(对象方法,类...

  • Python基础 - 类和对象

    面向对象编程 编程思想 1.面向过程编程 --> 算法,逻辑 2.函数式编程 --> 函数,模块 3....

  • Python面向对象之访问控制!

    回顾 在Python进阶记录之基础篇(十五)中,我们介绍了面向对象的基本概念以及Python中类和对象的基础知识,...

  • 三、python面向对象

    1.面向对象基础 类和对象(类和实例) 其实python面向对象的概念和c++、java等高级语言没什么区别,只是...

  • Python面向对象(基础)

    面向对象 Python是支持面向对象的,面向对象编程是一种程序设计思想。 类和实例(基础) 面向对象最重要的就是类...

  • 2018-07-31Python (11)

    python 基础语法(11) 面向对象 概念 面向对象最重要的概念就是类和实例,类是实例的抽象,而实例是类的具象...

网友评论

    本文标题:Python基础(五)类和对象

    本文链接:https://www.haomeiwen.com/subject/grsluctx.html