本文实例讲述了python面向对象之类属性和类方法。分享给大家供大家参考,具体如下:

目标

类的结构

类属性和实例属性

类方法和静态方法

01. 类的结构

1.1 术语 —— 实例

使用面相对象开发,第 1 步 是设计 类

使用 类名() 创建对象,创建对象 的动作有两步:

在内存中为对象 分配空间

调用初始化方法 init 为 对象初始化

对象创建后,内存 中就有了一个对象的 实实在在 的存在 —— 实例

因此,通常也会把:

创建出来的 对象 叫做 类 的 实例

创建对象的 动作 叫做 实例化

对象的属性 叫做 实例属性

对象调用的方法 叫做 实例方法

在程序执行时:

对象各自拥有自己的 实例属性

调用对象方法,可以通过 self.

访问自己的属性

调用自己的方法

结论

每一个对象 都有自己 独立的内存空间,保存各自不同的属性

多个对象的方法,在内存中只有一份,在调用方法时,需要把对象的引用 传递到方法内部

1.2 类是一个特殊的对象

Python 中 一切皆对象:

class AAA: 定义的类属于 类对象

obj1 = AAA() 属于 实例对象

在程序运行时,类 同样 会被加载到内存

在 Python 中,类 是一个特殊的对象 —— 类对象

在程序运行时,类对象 在内存中 只有一份,使用 一个类 可以创建出 很多个对象实例

除了封装 实例 的 属性 和 方法外,类对象 还可以拥有自己的 属性 和 方法

类属性

类方法

通过 类名. 的方式可以 访问类的属性 或者 调用类的方法

02. 类属性和实例属性

2.1 概念和使用

类属性 就是给 类对象 中定义的 属性

通常用来记录 与这个类相关 的特征

类属性 不会用于记录 具体对象的特征

示例需求

定义一个 工具类

每件工具都有自己的 name

需求 —— 知道使用这个类,创建了多少个工具对象?

class Tool(object):

# 使用赋值语句,定义类属性,记录创建工具对象的总数

count = 0

def __init__(self, name):

self.name = name

# 针对类属性做一个计数+1

Tool.count += 1

# 创建工具对象

tool1 = Tool("斧头")

tool2 = Tool("榔头")

tool3 = Tool("铁锹")

# 知道使用 Tool 类到底创建了多少个对象?

print("现在创建了 %d 个工具" % Tool.count)

2.2 属性的获取机制(科普)

在 Python 中 属性的获取 存在一个 向上查找机制

因此,要访问类属性有两种方式:

类名.类属性

对象.类属性 (不推荐)

注意

如果使用 对象.类属性 = 值 赋值语句,只会 给对象添加一个属性,而不会影响到 类属性的值

03. 类方法和静态方法

3.1 类方法

类属性 就是针对 类对象 定义的属性

使用 赋值语句 在 class 关键字下方可以定义 类属性

类属性 用于记录 与这个类相关 的特征

类方法 就是针对 类对象 定义的方法

在 类方法 内部可以直接访问 类属性 或者调用其他的 类方法

语法如下

@classmethod

def 类方法名(cls):

pass

python面向对象类属性_python面向对象之类属性和类方法案例分析相关推荐

  1. python modbus类封装_Python | 面向对象程序设计来了!

    当当当,技术小E又来了! 经过前几次的基础贴的培训 相信很多同学对python的基础知识 已经有了一个简单的认识 那么下面我们来讲一讲 python面向对象程序设计. 我们在写程序的时候一般有两种方式 ...

  2. python实例属性与类属性_Python 面向对象编程:类的创建与初始化、实例属性与方法、类属性与方法...

    1. 类的创建并实例化 类的定义:在Python中,类通过class 关键字定义.按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的.下面是一个 ...

  3. python面向对象编程中方法和属性_Python面向对象编程中关于类和方法的学习笔记...

    Python面向对象编程中关于类和方法的学习笔记 类与类方法是面向对象的编程语言中必不可少的特性,本文总结了Python面向对象编程中关于类和方法的学习笔记,需要的朋友可以参考下 类和实例 pytho ...

  4. python 类静态属性_python面向对象之静态属性/静态方法/类方法/组合

    继续学习,不要松懈 #!/usr/bin/env python # coding:utf-8 class Campus: def __init__(self,name,addr,type): self ...

  5. python面向对象特殊属性_Python面向对象-特殊成员

    我们知道类中有字段.方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用. Python的类成员还存在着一些具有特殊含义的成员,其中有一些比较重要的,我 ...

  6. python面向对象属性_Python面向对象属性

    也是好久没有更新过了,今天主要想写的就是关于面向的对象的属性的问题. 属性的解释来看,能够简单的理解为方法但是是用字段的方式来调用方法.除此之外,另外一种是不加装饰器,利用python提供方式来写,根 ...

  7. python对象和类区别_python面向对象(类与对象)

    面向对象思想 关注公众号"轻松学编程"了解更多. 1.面向对象的设计思想 面向对象是基于万物皆对象这个哲学观点. 2.面向对象和面向过程的区别 面向过程 在生活中: 它是一种看待问 ...

  8. python面向对象编程中_Python面向对象编程中关于类和方法

    类和实例 python是一个面向对象的语言,而面向对象最重要的概念就是类和实例, 记得刚学习的时候不太理解这些概念,直到老师说了一句"物以类聚". 没错就是类, 归类 物以类聚 类 ...

  9. python面向对象生动讲解_Python面向对象语法精讲

    本专题的内容结构: 第一部分主要是:面向对象基础 第二部分主要是:面向对象进阶 第一部分的结构: unit1:面向对象编程模式: (1),面向对象编程思想 (2),面向对象的三个特征 (3),Pyth ...

最新文章

  1. Java中创建泛型数组
  2. 应急响应-Yara规则木马检测
  3. @value 静态变量_面试官:为什么静态方法不能调用非静态方法和变量?
  4. 计算机盘不显示桌面,电脑开机后不显示Windows系统桌面怎么办?
  5. SpringMVC-@RequestMapping的参数和用法
  6. 图论(一)—— 基本概念
  7. c语言void结尾,c语言中的void和void*
  8. win10如何截屏_6个Win10系统使用小技巧,对你一定有用!
  9. 全球经典《深入解析Windows 操作系统,第4 版》4月19日全国发货!
  10. 二、JAVA第一行代码
  11. 运维工程师的打怪升级之路
  12. 给定两个水壶,一个可以装4升水,一个能装3升水,水壶上没有任何度量标记。有一水龙头可以用来往壶中灌水。问题是怎样在能装4升的水壶里面恰好只装2升水
  13. 研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的。...
  14. 2020年过去了,我很怀念它
  15. 利用requests库下载视频
  16. 毕业设计 stm32单片机的家庭成员监控监护系统 - 物联网 嵌入式
  17. linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法
  18. java图片管理系统_基于Java Web技术的图片管理系统的设计与实现.doc
  19. 软件项目管理 7.4.1.进度计划编排-超前与滞后方法
  20. 罗斯蒙特3051变送器

热门文章

  1. iOS核心动画高级技术(十三) 高效绘图
  2. 试用MarkDown
  3. 理解Kubernetes(2): 应用的各种访问方式
  4. 简单几何(推公式) UVA 11646 Athletics Track
  5. Java学习笔记(1)——概述
  6. 【翻译】在Sencha应用程序中使用插件和混入
  7. 算法每日练习之判断完数
  8. yolov5模型训练
  9. 文本挖掘预处理之向量化与Hash Trick
  10. MultiObjective using Evolutionary Algorithms (2) -- Multi-Objective Optimization