python中的类方法和静态方法
类可以有类属性,也可以有类方法,类方法主要是对类属性的封装。是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大部分人都习惯以'cls'作为第一个参数的名字,就最好用'cls'了),能够通过实例对象和类对象去访问。
类方法:
class People(object): #类属性 __country = 'china' def __init__(self): self.name = "Edward" #类方法,用classmethod来进行修饰 @classmethod def getCountry(cls): return cls.__country # 类方法,用classmethod来进行修饰 @classmethod def setCountry(cls,country): cls.__country = country #类方法不可使用实例属性 #类方法只能访问类属性 #@classmethod #def showPerson(cls): # print(name) p = People() print(p.getCountry()) #可以用过实例对象引用 print(People.getCountry()) #可以通过类对象引用 print("----------------") p.setCountry("USA") print(p.getCountry()) #可以用过实例对象引用 print(People.getCountry()) #可以通过类对象引用 #p.showPerson() |
静态方法:
需要通过修饰器@staticmethod来进行修饰,静态方法不需要多定义参数.
class People(object): country = 'china' @staticmethod #静态方法 def getCountry(): return People.country #静态方法不可访问实例属性 #静态方法可以访问类属性 #通过对象可以访问静态方法 #通过类也可访问静态方法 print(People.getCountry()) person = People() print(person.getCountry()) |
总结:
|
python中的类方法和静态方法相关推荐
- python中类方法与实例方法的区别-Python实例方法、类方法、静态方法的区别与作用详解...
本文实例讲述了Python实例方法.类方法.静态方法的区别与作用.分享给大家供大家参考,具体如下: Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调 ...
- python的用途实例-Python实例方法、类方法、静态方法的区别与作用详解
本文实例讲述了Python实例方法.类方法.静态方法的区别与作用.分享给大家供大家参考,具体如下: Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调 ...
- python实例方法、类方法、静态方法的区别_Python 实例方法、类方法、静态方法的区别与作用...
Python 实例方法.类方法.静态方法的区别与作用 一.总结 一句话总结: 实例方法:第一个参数必须是实例对象,该参数名一般约定为"self",通过它来传递实例的属性和方法(也可 ...
- python中静态变量和静态方法_【开发者笔记】python中的类方法(@classmethod)和静态方法(@staticmethod)...
在java.c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢. python提供了@classmethod和@staticmethod来定义 ...
- python的类方法可以用对象和类名来调用吗_怎么调用python中的类方法
python中的类用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用. 类方法 ...
- Python 实例方法、类方法、静态方法的区别与作用
Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...
- 针对Python 实例方法、类方法和静态方法的详解
1. 概览 先定义一个最简单的 Python 3 的类: class MyClass:def method(self):print('我是实例方法', self)@classmethoddef cla ...
- Python 实例方法、类方法和静态方法
在 Python 中,实例方法(instance method),类方法(class method)与静态方法(static method)经常容易混淆.本文通过代码例子来说明它们的区别. 实例方法 ...
- Python中定义类方法
方法也分实例方法和类方法, 与属性类似 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身. 在class中定义类方法,需要这么写: class Person(object) ...
最新文章
- Vector 把一个vector追加到另一个vector
- Unity3d Fast Indirect illumination Using Two Virtual Spherical Gaussian Lights-Square Enix论文
- 为什么要使用Vuex?
- [转] boost库的Singleton的实现以及static成员的初始化问题
- flask Flash消息
- windows上安装Metasploit Framework 4.0
- 开机自检BIOS语言详解
- iOS开发下载文件速度计算
- python求函数零点,在函数零点问题中求解参数范围
- ios 融云 重写对话列表_iOS开发融云即时通讯集成详细步骤
- Python图像处理一:图像的读取、显示与存储
- 现网必用的主备冗余技术,VRRP理论+配置
- Nagios③:文件初探
- Resilio Sync 无法获取追踪器列表 解决方法
- 产品设计指南:如何从零设计一款手机端产品(APP)?
- 2023年,“新一代”固定资产管理平台——支持低代码平台
- 苹果 macOS 12.4 正式版发布
- 痞子衡嵌入式:恩智浦SDK驱动代码风格、模板、检查工具
- python爬取小说章节_python之如何爬取一篇小说的第一章内容
- 交换机的基本配置实验报告
热门文章
- [Swift]loadNibNamed方法
- 反射,System.Type类
- 关于malloc与字符指针的一些易错点
- 从入门到深入Fiddler 2 (二)
- 记一次解决问题的掉坑过程
- 代码优化导致的奇葩问题
- android 4.2修改设置菜单的背景颜色
- html5 网络断开,html5 – websocket不断断开连接
- java 数组正则表达式_java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】...
- 海量url mysql_海量数据mysql优化步骤