python中类方法与实例方法的区别-python中类方法、类实例方法、静态方法的使用与区别...
1、如果你需要用实例来调用你的方法,那么在定义方法的时候,一定要把第一个参数设置成为self;
?2、如果你需要使用静态方法,那么你需要在方法前面加上@staticmethod修饰符;
?3、如果要使用类方法,那么你需要在方法前面加上@classmethod修饰符,并且在方法中至少使用一个参数,第一个参数在方法
中的作用就是代表改类本身。
????
#coding=gbk?
class C(object):
@staticmethod
def f1(arg): #here
is a static method. it's not necessary
只一个参数
#to have a
arg.
print 'arg:', arg
@classmethod
def f2(cls, arg):
#here is a class method. you have to take
第一个参数为类
#at least one arg. you can
use another name
#to replace the 'cls', but I
recommend you
#to use cls -- for most
python programmer
#use it.
print 'class name:', cls.__name__
print 'arg:', arg
def f3(self, arg):
#here is a instance method. Use 'self' in 第一个参数代表实例变量
#python is
just as 'this' in C++ or java.
print 'arg:', arg
def f4(arg): #no
error at here, but when you want to call this
这是错误的定义,缺少self
#method,
there will be an error. see it later.
print 'error:', arg
def test(): #
这是函数,不是方法(方法存在于类里)
c = C()
c.f1('cf1')
#OK
C.f1('Cf1')
#OK
c.f2('cf2')
#OK
C.f2('Cf2')
#OK
c.f3('cf3-1')
#OK
C.f3(c, 'cf3-2')
#OK
c.f4('cf4')
#Error
C.f4('Cf4')
#Error
if __name__ == '__main__':
test()
说明:
1、self
指的是你定义的这个类被调用创建了一个实例时,self就是这个实例。也就是说,self就是要使用你这个函数的实例的名称,这个self在类中必须要加,当然名字不一定是self,self只是传统变量名一直被沿用了而已。
2、类中的实例方法定义第一个参数必须是self,而普通函数(不在类中)的定义没有self参数。
转自:http://cache.baiducontent.com/c?m=9d78d513d9810ae902b0c8690c66c0101d43f6612bd6a0020fd3843995735a315017e1ac50200443939b733d47e90b4beb832b6f675d7de28cc8ff49d9ba852858d97a6b6d57d51d47c41edb931d769d7ecb47b9f144b2a7b174c0e88982c25757c9580e7882f28f5a0217cb64f01530e2a5984f155e10a7&p=8763cb15d9c043aa18bcc7710f089f&newp=9333831a84d012a05abd9b7d0f13cd231610db2151d4d31f&user=baidu&fm=sc&query=python?е???&qid=ef3722a200081e82&p1=23
?
python中类方法与实例方法的区别-python中类方法、类实例方法、静态方法的使用与区别...相关推荐
- 组件php53 php55区别,分享下php5类中三种数据类型的区别
public: 公有类型 在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法 在实例中可以能过$obj->var ...
- python静态方法和类方法的区别_python中类的静态方法和类的类方法
知识回顾: 上一节中,我们深化学习了类的属性监控,主要使用了三个魔法方法:__getattr__ __setattr__ __delattr__ 与此同时在书写属性设置监控的时候,千万不要忘记写__d ...
- python私有变量什么意思_python为什么有私有方法和变量
1. 访问安全,其实也没有决定的安全 >>> class humer(object): ... def __init__(self, name): ... self.name = n ...
- python中类方法与实例方法的区别-python中类方法,实例方法,静态方法的作用和区别...
Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...
- python中类方法与实例方法的区别-Python实例方法、类方法、静态方法的区别与作用详解...
本文实例讲述了Python实例方法.类方法.静态方法的区别与作用.分享给大家供大家参考,具体如下: Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调 ...
- python的用途实例-python中类方法,实例方法,静态方法的作用和区别
Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...
- python中类方法与实例方法的区别-Python实例方法、静态方法和类方法详解(包含区别和用法)...
和类属性一样,类方法也可以进行更细致的划分,具体可分为类方法.实例方法和静态方法. 和类属性的分类不同,对于初学者来说,区分这 3 种类方法是非常简单的,即采用 @classmethod 修饰的方法为 ...
- python函数和类的区别_Python中类中的方法还有区别?
上一篇,我们讲到Python类中的属性是有区别的,爱思考的小伙伴们可能就会问了,Python中的方法是不是也有区别呢?是的,而且Python中的方法区别更大,让我们来看看吧~ Python类中的三种方 ...
- Python中类方法、类实例方法、静态方法,私有属性和私有方法有何区别?
类方法 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象,类对象和实例对象都可调用. 使用格式: 对类的属性进行操作,就要用类的方法. @class ...
- python 类变量、实例变量、参数、实例方法、类方法、静态方法 的用法和区别
#!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Introduce : 类变量.实例变量.参数.实例方法.类方法 ...
最新文章
- python写数据结构书_有哪些用 Python 语言讲算法和数据结构的书?
- Unbuntu18.04通过apt源方式安装mysql5.7.22
- 贪心算法--会场安排问题
- sql用什么替代or
- SpringBoot高级-消息-JMSAMQP简介
- Presto日志中出现大量的Triggering GC to avoid Code Cache eviction bugs
- java中的可检查和不检查_检查Java测试中发生了什么
- hmailserver批量添加用户
- php跳过一段html,PHP_一段能瞬间秒杀所有版本IE的简单HTML代码,许多人都非常讨厌Internet Explore - phpStudy...
- Spring : Factories这个是什么
- java服务器端socket,java 服务器端socket
- linux如何跳到命令行开端,Linux快捷键大全
- mockserver
- mac安装旺旺启动台找不到_如何正确安装卸载mac软件
- java闰年_java 判断闰年
- 设置jupyter notebook默认浏览器
- ecshop模板基础知识
- Spring Boot 结合 FreeMarker导出word文件
- java sdk和java api 的区别
- react:创建新项目
热门文章
- new hashmap 初始大小_害怕面试被问HashMap?这一篇就搞定了
- 建模大师怎么安装到revit中_「Revit技巧」插件挤满了、冲突了,怎么办?
- Spark中Task,Partition,RDD、节点数、Executor数、core数目(线程池)、mem数
- 检测用户命令序列异常——使用LSTM分类算法【使用朴素贝叶斯,类似垃圾邮件分类的做法也可以,将命令序列看成是垃圾邮件】...
- go语言笔记——切片底层本质是共享数组内存!!!绝对不要用指针指向 slice切片本身已经是一个引用类型就是指针...
- Kubernetes——基于容器技术的分布式架构领先方案,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩...
- wukong引擎源码分析之索引——part 3 文档评分 无非就是将docid对应的fields信息存储起来,为搜索结果rank评分用...
- 联机事务处理OLTP(on-line transaction processing)和联机分析处理OLAP(On-Line Analytical Processing)...
- 巧用watch命令执行循环操作,来解放我们的双手
- pom.xml常用元素解析