python classmethod static_python @classmethod 和 @staticmethod
python中有三种调用method的方法:普通method,staticmethod和classmethod
正常的类对象,self, 而classmethod要传入类, staticmethod不用传。
staticmethod不能访问类成员变量。
class MethodTest():
var1 = "class var"
def __init__(self, var2 = "object var"):
self.var2 = var2
@staticmethod
def staticFun():
print 'static method'
@classmethod
def classFun(cls):
print 'class method'
staticmethod和classmethod的相同点:
1.都可以通过类或实例调用
mt = MethodTest()
MethodTest.staticFun()
mt.staticFun()
MethodTest.classFun()
mt.classFun()
2.都无法访问实例成员
@staticmethod
def staticFun():
print var2 //wrong
@classmethod
def classFun(cls):
print var2 //wrong
staticmethod和classmethod的区别:
1.staticmethod无需参数,classmethod需要类变量作为参数传递(不是类的实例)
def classFun(cls):
print 'class method' //cls作为类变量传递
2.classmethod可以访问类成员,staticmethod则不可以
@staticmethod
def staticFun():
print var1 //wrong
@classmethod
def classFun(cls):
print cls.var1 //right
python classmethod static_python @classmethod 和 @staticmethod相关推荐
- python classmethod static_python classmethod和 staticmethod的心得
这两个装饰器是Python自带的,虽然一直都知道装饰器是怎么用的,但是确实不知道何时去使用它们,今天看到某人用到了,又看了一遍,才有所收货. 其实我们几乎可以不用这两个装饰器,总有办法解决问题,所以让 ...
- python中的@classmethod的作用
推荐 <Python 中的 classmethod 和 staticmethod 有什么具体用途?> 一.简介 1.1 描述 classmethod 修饰符对应的函数不需要实例化,不需要 ...
- python classmethod_对Python中的@classmethod用法详解
在Python面向对象编程中的类构建中,有时候会遇到@classmethod的用法. 总感觉有这种特殊性说明的用法都是高级用法,在我这个层级的水平中一般是用不到的. 不过还是好奇去查了一下. 大致可以 ...
- 关于Python中的classmethod
Python 中的 classmethod classmethod: 作用是直接将自己的类对象,传给类方法. 一.classmethod 1)不用classmethod的时候 你的代码可能是这样写的, ...
- python知识:@classmethod和@staticmethod的异同
1 说明 @staticmethod的意思就是将后面的函数转化成静态函数. 大多数情况,@classmethod和@staticmethod效果一样.但是那不是正题,正式作用是类工厂,如果有类继承关系 ...
- python中@staticmethod_Python中的@staticmethod和@classmethod的区别
一直搞不明白,类方法和静态方法的区别,特意研究了一下,跟大家分享一下. 为了方便大家了解两者的差别,以下的示例代码将有助于发现其中的差别: class A(object): def foo(self, ...
- python静态方法的作用_@staticmethod和@classmethod如何作用于python中的...
您的类方法和静态方法都只能更改类级变量.问题是这样做时,您已经在实例变量s1中隐藏了类变量num: s1.num = s1.num + 5 这将创建一个实例变量,该实例变量遮盖了实例名称空间中的类变量 ...
- Python中的@classmethod修饰符
classmethod修饰符对应的函数不需要实例化,不需要self参数,但第一个参数需要是表示自身类的cls参数,可以来调用类的属性,类的方法,实例化对象等 class A(object):bar = ...
- python中静态变量和静态方法_【开发者笔记】python中的类方法(@classmethod)和静态方法(@staticmethod)...
在java.c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢. python提供了@classmethod和@staticmethod来定义 ...
最新文章
- ORB_SLAM2 定位模式
- 不提供账号注销等于耍流氓
- Nature调查 l 中国博士生们的科研围城
- 4G EPS 的架构模型
- Spring or hibernate saveOrUpdateAll 偶然失效
- Ruby中require,load,和include的区别
- 获取浏览器书签、浏览器文件夹数据
- 告别相杀!面向对象和函数式编程共存
- 用Python写一个简单的监控系统
- ANSYS19.0安装(无比详细的图文示范教程)
- Ubuntu16.04 安装国内版火狐浏览器,同步标签
- MaxScript学习 | 创建石头
- 中国5G牌照或于今日发放 我国将正式进入5G时代
- google浏览器缓存文件在哪里
- 机械臂力控----积分自适应导纳控制
- 大数据处理与分析方向主要干什么_大数据分析_方向_方法与工具
- python实现百万英雄答题神器
- C++的成员函数指针简要
- 【Vue】Vue打包文件后需要添加版本号Version,来防止更新后的页面有缓存
- 三星i908、iPhone3G对比评测
热门文章
- 平滑滤波器模板尺寸与平滑效果的关系_用PPT基础功能,教你打造发布会效果,这骚操作谁顶得住啊?...
- Freeswitch NAT问题
- 实例:用户登录(python 版)
- Maven中dependencyManagement标签和dependencies的区别
- UpdatePanel 的 UpdateMode 和 ChildrenAsTriggers(较好的总结了前面几篇博客的内容)
- 强化学习《基于价值 - Dueling Q-Learning》
- 漫步最优化九——泰勒级数
- 深度学习-Tensorflow1.x-CNN中的padding参数
- Pytorch —— 损失函数(二)
- 操作系统 ——进程的状态与转换