实例
实例就是由对象创建出来的实实在在的存在
创建出来的对象叫做类的实例
创建对象的动作叫做实例化
对象的属性叫做实例的属性
对象调用的方法叫做实例方法
 
类是一个特殊的对象
 
类属性
类属性就是类对象中定义的属性,通常用来记录与这个类相关的特征,不会记录与对象相关的特征
演练需求:
1.定义一个工具类
2.每件工具都有自己的名称
3.知道使用这个类,创建了多少工具对象
  1. class Tool ( object ):
  2. # 使用赋值语句定义类属性
  3. count = 0
  4.  
  5. def __init__(self, name):
  6. self.name = name
  7. # 调用类属性的值+1
  8. Tool.count += 1 # 类属性的调用方式:类名.类属性名
  9. # 创建工具对象
  10. t1 = Tool ( "斧头" )
  11. t2 = Tool ( "水桶" )
  12. # 输出工具对象的总数
  13. print ( "工具对象的总数 %d" % Tool.count )
属性获取机制--向上查找机制
1、首先先在对象内部查找
2、没有找到就会向上寻找类属性
 
类方法
类属性是针对 类对象 定义的属性
使用赋值语句在class 关键字下方可以定义属性
类属性 用于记录与这个类相关的特征
 
类方法 是针对 类对象 定义的方法
在类方法内部可以直接访问类属性或者调用其它的类方法
 
语法格式:
  1. @classmethod
  2. def 类方法名( cls ):
  3. pass
注意:
1.类方法需要用 修饰器 @classmethod 来标识,告诉解释器这是一个类方法
2.类方法的第一个参数 应该是 cls ,与实例方法的第一个参数self类似
3.通过类名,调用类方法,调用方法时,不需要传递cls 参数
4.在方法内部:
  • 可以通过cls. 访问类的属性
  • 也可以通过cls. 调用其他的类方法
  1. class Tool(object):
  2. count = 0
  3.  
  4. def __init__(self, name):
  5. self.name = name
  6. Tool.count += 1
  7.  
  8. # 类方法
  9. @classmethod
  10. def show_tool_count(cls):
  11. # 访问当前类方法的属性使用cls.
  12. print("工具对象的数量 %d" % cls.count)
  13.  
  14. tool1 = Tool("斧头")
  15. tool2 = Tool("榔头")
  16. # 调用类方法,使用类名.类方法名()
  17. Tool.show_tool_count()
 
静态方法
静态方法 需要用 @staticmethod 来标识,告诉解释器这是一个静态方法
参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法
静态方法主要是用来存放逻辑性的代码
通过类名. 调用静态方法
语法格式:
  1. @staticmethod
  2. def 静态方法名():
  3. pass

  

演练:
  1. class Dog(object):
  2. @staticmethod
  3. def run():
  4. # 如果这个方法不访问实例属性或者类属性,就可以把方法定义成静态
  5. print("小狗要跑。。。")
  6. # 通过类名.调用静态方法,不需要创建对象
  7. Dog.run()

  

 
 

python类属性 静态方法的更多相关文章

  1. python类属性和类方法(类的结构、实例属性、静态方法)

    类属性和类方法 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两 ...

  2. Python类属性和类方法

    01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两步: 1) 在内存中为对象 分配空间 2) 调用初始化方法 __in ...

  3. python 类属性与方法

    Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...

  4. Python类属性访问的魔法方法

    Python类属性访问的魔法方法: 1. __getattr__(self, name)- 定义当用户试图获取一个不存在的属性时的行为 2. __getattribute__(self, name)- ...

  5. python 类属性、静态方法与类方法

    1. 类属性 1.1 定义 在类中方法外通过属性名 = 属性值定义的属性 访问方式: 类名.属性名 对象名.属性名 class Student: cls_id = 102 stu = Student( ...

  6. python类属性和对象属性、类的普通方法和静态方法

    类属性和对象属性的定义 class LearnClass(): #类属性 cls_attr = None def __init__(self,arg): #对象属性 self.obj_attr = a ...

  7. python类的静态方法和类方法区别

    先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法. # coding:utf-8 class Foo(object): """类三种方法语法形式&q ...

  8. Python类属性,实例属性

    1.Python类数据属性:定义在类里面但在函数外面的变量,它们都是静态的. #一段很简单的代码,但反应了很多 >>> class A(): a=1 #一个类里面有个属性a > ...

  9. Python类属性详解

    在python开发中,我们常常用到python的类,今天就通过实例和大家扒一扒类的属性,一起来看看吧. 类属性 1.类定义后就存在,而且不需要实例化 2.类属性使得相同类的不同实例共同持有相同变量 类 ...

随机推荐

  1. mysql之行转列与列转行

    mysql之行转列与列转行是数据查询的常见操作,以更好的来展示数据,下面就详细说说怎么实现. 行转列 行转列的话,就是将一条一条的行数据记录转换为一条列数据展示,一般来说是根据某一列来做汇总数据的操作 ...

  2. 在Mac上安装JDK1.8及环境变量配置

    今天我们来讲一讲,在Mac上的JDK安装. 第一步,打开终端输入 java -version 看看是否本地已经安装了JDK,如果未安装,OK,继续- 第二步,到官网下载JDK.勾选“Accept Li ...

  3. 东芝MCU实现位带操作

    位带操作简介 位带操作的概念其实30年前就有了,那还是 8051单片机开创的先河,如今ARM CM3 将此能力进化,可以说,这里的位带操作是8051 位寻址区的威力大幅加强版.即如果要改写某个寄存器的 ...

  4. Dubbo学习系列之六(微服务架构实战)

    看了最近文章的反馈,似乎波澜不惊的样子,应该是看官觉得都是小菜,那我就直上硬菜,人狠话不多,开始!准备:Idea201902/JDK11/ZK3.5.5/Gradle5.4.1/RabbitMQ3.7 ...

  5. 5分钟搞定Jenkis

    目录 什么是持续集成 Jenkins简介 Jenkins安装与启动 Jenkins插件安装 全局工具配置 自动安装 本地安装 代码上传至Git服务器 任务的创建与执行 Go项目 JAVA项目 @ 什么 ...

  6. 一分钟理解Java公平锁与非公平锁

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  7. spring cloud学习与思考——总起篇

    接下来就spring cloud( Spring Boot 2.0版本)写一个系列,一方面加深记忆理解,做个日志,另一个方面,借这个方式跟朋友们沟通交流. 1.Spring boot是Spring的一 ...

  8. Jerome: Vulnhub Walkthrough

    nmap 扫描探测: ╰─ nmap -p1-65535 -sV -A -O -sT 10.10.202.135Starting Nmap 7.70 ( https://nmap.org ) at 2 ...

  9. nginx配置文件 http 强跳转 https

    路径 /usr/local/nginx/conf/conf.d/test.jackcui.com.conf server { listen 80; server_name test.jackcui.c ...

  10. Cocos2d-x 3.2 的内存管理详解

    目标读者:了解 Cocos2d-x 中的节点以及节点树,了解引用计数,了解游戏主循环等概念. 本文首先介绍 Cocos2d-x 3.2 中内存管理的作用,以及各个作用的应用.借由通俗易懂的解释来了解内 ...