网站首页 > 资源文章 正文
一、如何创建一个类
class是关键字,表示类
类创建的语法:
class 类名称:
…… 变量 ……
…… 方法 ……
示例:
ch08-demo01-class.py
特别说明:Python类中定义的函数称为方法
二、如何创建一个对象(实例)
创建对象的过程也称之为:类实例化过程。
代码
ch09-demo01-class.py
三、类的方法
Python3面向对象的概念中,关于类的方法一共有四种:
① 实例方法 ( instanceMethod )- 使用频次最多
② 类方法(classMethod)- 根据需求适度
③ 静态方法(staticMethod)- 根据需求适度
④ 普通方法(ordinaryMethod)- 使用频次很少
四种方法的区别:
① 定义语法格式上;
② 对各种类型变量的访问权限上。
(一)实例方法instanceMethod
实例方法是属于实例对象的,但也可以使用类直接调用。但两者调用的方式有区别(传递参数个数上面)。
实例方法在定义中,第一个参数必须为 self (当然参数名称也可以随意定义,但是 self 是python默认的规定最好不修改)
实例方法定义的语法规范:
def 方法名称 (self [, arg1[, arg2, …[, argN]]]) :
▲ 实例方法的定义及各种调用
第一个参数 self 代表 调用该方法的实例对象,在使用实例对象调用方法的时候 可以忽略第一个参数,只需传递满足实例方法定义时的 n-1 个后续参数数量即可。
而类调用时,需要传递与定义数量匹配的n个参数,第一个 self 只当做一个参数变量名称而已。
示例:
ch08-demo02-instancemethod.py
△ 特殊的类实例方法——构造方法_init_
构造方法是类成员方法中特殊的一种方法,其方法名称为__init__( )。
该方法无需对象通过访问操作符调用,在类实例化对象的过程中自动调用。
构造方法的作用有两个:
① 为对象创建内存空间
② 实例对象的实例变量参数初始化
语法:
class 类名称:
# 类的构造方法
def __init__(self,参数列表 ):
……方法体……
示例:
ch08-demo03-constructor.py
△ 特殊的类实例方法2——实例对象输出_ str_
当我们使用 print() 函数输出使用类创建好的实例对象的时候,默认输出的是当前实例对象的十六进制内存地址。
示例:
ch08-demo04-tostring.py
改造,重新定义对象实例的输出。在类中定义 __str__方法
▲ 实例变量(成员属性)
与实例方法 遥相呼应 的是 实例变量。
实例变量 属于类创建的实例对象的,这些属性是所有实例对象都拥有的。只不过每个实例对象的属性值各异。
实例变量 均在构造方法__init__( )中 声明并初始化。
语法:
self.实例变量名称 = 值 # self 代表当前创建的实例对象
类中的实例方法均可以访问实例变量。
示例1 :实例变量的创建及初始化
一般在创建构造方法的时候,充分利用构造方法为类实例变量(成员属性)初始化的这一典型作用。
示例:
ch08-demo5-instancevar.py
self 是对类创建对象的引用,代表当前对象。
- 当执行 obj1 = Person (‘路人甲’, 16) 时,self 等于 obj1
- 当执行 obj2 = Person (‘路人乙’, 22) 时,self 等于 obj2
示例2 :实例变量的两种输出方式
我们可以通过实例对象或定义类实例方法两种方式实现对初始化好的对象实例变量进行输出。
● 示例 2-1:通过 实例对象 实现对类创建的对象实例变量进行输出
● 示例 2-2:通过 定义实例方法 实现对实例变量进行输出
ch09-demo7-instancevar-output02.py
输出第2个对象实例变量
输出第1个对象实例变量
由于类中所有的实例方法均可以访问类的实例变量,则自定义实例方法进行输出。
说到这里我们有个疑问?
Q:使用函数式编程和面向对象编程方式来执行一个“方法”时,函数要比面向对象简便?
● 面向对象:【创建对象】->【通过对象执行方法】
● 函数编程:【执行函数】
观察上述对比答案则是肯定的,然后并非绝对,场景的不同适合其的编程方式也不同。
总结:函数式的应用场景 –> 各个函数之间是独立且无共用的数据
猜你喜欢
- 2024-09-18 无门槛快速学编程——Python小短课,三探面向对象
- 2024-09-18 Python中的“实例化对象”——掌握面向对象编程的核心技能
- 2024-09-18 面向过程和面向对象最通俗的解释(面向对象和面向过程的概念和区别)
- 2024-09-18 漫画:如何通俗易懂地解释面向对象思想?
- 2024-09-18 一文让你掌握Python面向对象的编程思维
- 2024-09-18 什么是面向对象,看这一篇就够了(什么叫面向对象)
- 2024-09-18 C#自学——面对对象(OOP)(c#面向对象的编程)
- 2024-09-18 面向对象:静态方法、类方法、属性方法
- 2024-09-18 Delphi基础教程图文版之初识面向对象
- 2024-09-18 最容易被人忽视的面向对象的六大原则
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)