面向Python,面向对象(基础3)

栏目: Python · 发布时间: 6年前

内容简介:面向对象是一种编程思想,看以看成是对现实世界中的事物进行抽象的方式。应用到代码编程设计中,是一种建立现实世界事物模型的方式。面向过程关注的是完成工作的步骤,面向对象关注的是谁能完成工作,一个关注过程,一个关注完成对应任务的个体。类是一系列事物的统称(例如:猫科类),通类事物必定具有相同的特征。日常事物的特征根据特性分为状态和行为,对应到类中就是变量个方法。

面向对象是一种编程思想,看以看成是对现实世界中的事物进行抽象的方式。应用到代码编程设计中,是一种建立现实世界事物模型的方式。

1.2 面向对象和面向过程区别

面向过程关注的是完成工作的步骤,面向对象关注的是谁能完成工作,一个关注过程,一个关注完成对应任务的个体。

2.1 类的概念

类是一系列事物的统称(例如:猫科类),通类事物必定具有相同的特征。日常事物的特征根据特性分为状态和行为,对应到类中就是变量个方法。

特征分类:
    状态 —— 变量(成员变量)
    行为 —— 方法(成员方法)
    统称:类的成员
复制代码

2.2 类定义的语法格式

class 类名:
    pass
复制代码
面向Python,面向对象(基础3)

说明:pass是空语句,不具有任何意义,仅为了保持程序结构的完整性

注意:类名每个单词首字母必须大写,满足大驼峰命名法,例:BlueCat

3. 对象

3.1 对象是类的具体表现形式,是类中存在的某个个体。(类是一系列事物的统称)

3.2 创建对象语法格式

对象名 = 类名()

面向Python,面向对象(基础3)

3.3 注意事项

对象的创建不限制数量,一个类可以创建任意个数的对象

4. 成员变量

4.1 成员变量的概念

成员变量用于描述对象的固有状态或属性。

4.2 定义成员变量语法格式(公有属性/公有变量)

class 类名:		 
    def __init__(self):
    self.变量名1 = 值1
    self.变量名2 = None
复制代码
面向Python,面向对象(基础3)

4.3 成员变量定义语法格式(独有属性/独有变量)

对象名.变量名 = 值

class Cat:
    def __init__(self):
        self.type = "胖橘"
        self.name = None


cat1 = Cat()
print(cat1.type)
cat1.name = "大帅"
print(cat1.name)
# 给cat1穿衣服
cat1.cloth = "红色"
复制代码

说明:在对象名下,之前定义过的变量再用,属于调用变量,之前没定义过的变量,属于新定义的变量,之前没定义的值,属重新赋值。

4.4 公有变量与独有变量的区别

  • 公有变量在__init__方法中声明,每个队形都具有该变量
  • 独有变量在创建对象后声明,只有当前对象具有此变量
  • 定义对象的独有变量时,如果独有变量名与公有变量名相同,视为修改公有变量的值;如果独有变量名与公有变量名不相同,视为定义新的独有属性
  • None含义是为空,表示没有具体的数据

4.5 变量的调用格式

取值:对象名.变量名

赋值:对象名.变量名 = 值

5.成员方法

5.1 成员方法概念

成员方法用于描述对象的固有行为

5.2 定义成员方法的语法格式

格式一(无参方法):

class 类名:
        def 方法名(self):
            方法体
复制代码
面向Python,面向对象(基础3)

格式二(有参方法):

class 类名:
    def 方法名(self,形参1,形参2,...):
       方法体 
复制代码
面向Python,面向对象(基础3)

5.3 调用成员方法语法格式

格式一(调用无参方法):

对象名.方法名()

面向Python,面向对象(基础3)

格式二(调用有参方法):

对象名.方法名(实参1,实参2,...)

面向Python,面向对象(基础3)

6. __init__方法

6.1 __init__方法的作用

__init__方法,也称为构造方法,创建对象时为对象初始化成员变量

6.2 定义__init__方法语法格式

格式一:

def __init__(self):
    self.变量名1 = 值1
复制代码
面向Python,面向对象(基础3)

格式二:

def __init__(self,形参1,形参2,…):
    self.__属性名1 = 形参1
    self.__属性名2 = 形参2
复制代码
面向Python,面向对象(基础3)

6.3 __init__方法调用和执行

  • __init__方法在创建对象时被运行,无需手工调用即可执行
  • __init__方法中如果有形参,在创建对象时需要传递对应的实参

6.4 魔术方法

魔术方法是在类中声明、定义的方法,执行时无需手工调用,自动执行。如: init

7. __str__方法

7.1 __str__方法的作用

__str__方法是在使用print函数打印输出对象到屏幕时被调用的方法,用于返回对象的规范化字符串表现形式(魔术方法)。

7.2 定义__str__方法语法格式

def __str__(self):
    return 打印对象是显示的信息
复制代码
面向Python,面向对象(基础3)

8.成员方法调用类成员

8.1 成员方法中调用成员变量的语法格式

self.变量名

面向Python,面向对象(基础3)

8.2 成员方法中调用成员方法语法格式

self.方法名(实参1,实参2,...)

class Cat:
    def catch(self):
        # 1.跳起
        # 2.抓住
        # 3.咬死
        self.jump()
        self.grasp()
        self.bite()
    def jump(self):
        print("猫跳了起来")

    def grasp(self):
        print("猫抓住了老鼠")

    def bite(self):
        print("猫咬死了老鼠")
cat1 = Cat()
cat1.catch()
复制代码

8.3 self

self仅出现在成员方法中,指代执行该方法的对象,可以任意书写aaa,类似于占位符,替对象占位。

9. 封装

9.1 封装的作用

封装操作可以对受访问保护的成员进行功能开放的控制,达到保护数据不被非法访问的目的

9.2 定义私有变量语法格式

self.__属性名 = 值

面向Python,面向对象(基础3)

9.3 定义私有方法语法格式

def __方法名(self,形参1,形参2,…):
    方法体
复制代码
面向Python,面向对象(基础3)

说明:一般不会对方法私有化

9.4 标准封装语法格式

变量私有化格式:

self.__属性名 = 值
复制代码

提供公共的访问器格式:

def get_属性名(self):
    return self.__属性名
复制代码

提供公共的修改器格式:

def set_属性名(self,属性名):
    self.__属性名 = 属性名
复制代码
面向Python,面向对象(基础3)

注意:get、set都是跟一个下划线_。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Is Parallel Programming Hard, And, If So, What Can You Do About

Is Parallel Programming Hard, And, If So, What Can You Do About

Paul E. McKenney

The purpose of this book is to help you understand how to program shared-memory parallel machines without risking your sanity.1 By describing the algorithms and designs that have worked well in the pa......一起来看看 《Is Parallel Programming Hard, And, If So, What Can You Do About 》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

html转js在线工具
html转js在线工具

html转js在线工具