python classmethod 的cls_python的cls,self,classmethod,staticmethod
python类里会出现这三个单词,self和cls都可以用别的单词代替,类的方法有三种,
一是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问,类似于c++中通过对象去访问;
二是在def前面加上@classmethod,这种类方法的一个特点就是可以通过类名去调用,但是也必须传递一个参数,一般用cls表示class,表示可以通过类直接调用;
三是在def前面加上@staticmethod ,这种类方法是静态的类方法,类似于c++的静态函数,他的一个特点是参数可以为空,同样支持类名和对象两种调用方式;
下面上代码。
class A(object):
bar = 1
def foo(self):
print 'foo'
@staticmethod
def static_foo():
print 'static_foo'
print A.bar
@classmethod
def class_foo(cls):
print 'class_foo'
print cls.bar
cls().foo()
A.static_foo()
A.class_foo()
输出:
static_foo
1
class_foo
1
foo
python classmethod 的cls_python的cls,self,classmethod,staticmethod相关推荐
- python classmethod知识_python基础知识讲解——@classmethod和@staticmethod的作用
python基础知识讲解--@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...
- python中classmethod的用法_Python中的@classmethod是如何使用的?
在写Python程序的时候,特别是实现类方法的时候,通常会用到@staticmethod和@classmethod两种装饰器(function decorator),那这两个装饰器有什么作用呢?在这篇 ...
- 深入浅析python 中的self和cls的区别
python 中的self和cls 一句话描述:self是类(Class)实例化对象,cls就是类(或子类)本身,取决于调用的是那个类. @staticmethod 属于静态方法装饰器 @classm ...
- python classmethod 的cls_Python中的@staticmethod,@classmethod,self,cls到底是什么意思?...
普通类方法 在Python中,通常我们调用某个类的方式,首先要实例化一个对象才能调用该类的方法,比如: # _*_ coding:utf-8 _*_ class People: def hello(s ...
- 浅谈python中的一般方法、静态方法(staticmethod)和类方法(classmethod)
我们先来简单谈谈python类中一般方法.静态方法和类方法的区别. 1.类中的一般方法 一般方法在定义的时候,需要有表示类实例的参数(通常以self表示,例如def foo(self,arg1,arg ...
- python为什么用class_python为什么会有@classmethod?
今天被问了这么个问题 python为什么要有classmethod? 被问倒了,只能回答:classmethod不需要实例化类,用起来比较方便.这么回答没有什么底细,于是查看了一下python的官方文 ...
- Python 面试高频问题:cls到底是什么
上一篇文章介绍了什么是python 中的self,详情请参考: Python面试高频问题:self到底是什么 简单的说self是类(Class)实例化的对象. 面试中还有一个问题经常被提及,那就是-- ...
- python:单例模式--使用__new__(cls)实现
单例模式:即一个类有且仅有一个实例. 那么通过python怎么实现一个类只能有一个实例呢. class Earth:"""假如你是神,你可以创造地球"" ...
- python 面向对象篇
文章目录 面向对象的基础知识 类的实例化 实例属性 类属性 类的操作(调用方法和属性) 实例方法 构造方法 析构方法 self参数的作用 类方法 面向对象的三大特性 继承: 多态:来源于继承,一个事务 ...
最新文章
- java webservice接口开发_php开发webservice服务端接口(wsdl)
- 用Vue框架和后台请求的时候传递的参数的方式
- 【微信小程序企业级开发教程】小程序的配置详解
- 队列 和 线程 之GCD dispatch
- 性能测试之JMeter取样器详解:sampler
- 大容量存储方案_助力卫星发射!威固提供自主固盘,满足载荷数据大容量存储能力...
- 计算机专业毕业设计中期考核表,研究生中期考核表导师评语
- kickstart-F
- 【POJ2069HDU3007】模拟退火算法之最小球/圆覆盖
- 筱筱看博客(uni-app、mumu模拟器、真机测试)
- iphone 投android电视,手机投屏到电视上的2种方法,看完才知道原来这么简单
- 时间计算题100道_@所有考生,答应大家的政经10道计算题来了!
- vmware安装了vmware tools还是无法复制文件与文本(ubuntu16.04)
- unity il2cpp 热更实现
- 计算机上如何查找什么占网速,怎么查看网速被占用(宽带100m但wifi很慢)
- h5分享微信好友朋友圈
- html如何生成条形码,前端如何生成条形码---JsBarcode
- Process finished with exit code 1 解决方法
- CPU-流水线的数据相关问题
- 国家教育部牵手曙光公司——“百校工程”助力教育行业大数据平台建设
热门文章
- javaee互联网轻量级框架整合开发_整合MyBatis的关键点及快速入门
- CSS总结——瀑布流布局
- hp打印机一直显示正在打印中_苹果Mac出现新bug HP打印机驱动被标为恶意软件
- 基于MATLAB的数字水印算法研究实现
- 计算机D盘已经清空了为什么显示还是满格的,d盘满到变红色了怎么清理 d盘满到变红色的清理方法...
- vs2019创建c++项目步骤_创建django项目的步骤(超级详细)
- jquery 判断 重定向url_使用curl获取Location:重定向后url
- Redhawk Dynamic Analysis
- 服务器更换主板影响,关于x86服务器主板更换导致一系列问题解决
- DSP仿真器Debug