1 classMethodDemo():2 classVar = 'This is a class variable' #类变量,可在类函数或者成员函数中引用,为所有实例共有的

3 def __init__(self):4 self.instanceVar = 'This is a instance variable' #成员变量,只可在实例对象中引用,只属于当前实例

5

6 #成员函数

7 definstanceMethod(self,x):8 temporaryVar = 'This is a temporary variable' #临时变量,只在当前函数有用,也就是该函数的局部变量

9 print('executing instanceMethod(%s,%s)'%(self,x))10 print('classVar = %s'%self.classVar) #类变量可在成员函数中引用

11 print('instanceVar = %s'%self.instanceVar) #成员变量可在成员函数中引用

12 print('temporaryVar = %s'%temporaryVar) #临时变量只能在当前函数中引用

13

14 #类函数

15 @classmethod16 defclassMethod(cls,x):17 print('executing classMethod(%s,%s)'%(cls,x))18 print('classVar = %s' % cls.classVar) #类方法中能引用类变量

19 #print('instanceVar = %s' % cls.instanceVar) #'类函数不可引用成员变量 MethodDemo' has no attribute 'instanceVar'

20 #print('temporaryVar = %s' % temporaryVar) #类函数不可引用成员函数中的临时变量 name 'temporaryVar' is not defined

21 #print('tempVar =%s' % cls.tempVar) #类函数不可引用成员函数中的局部变量 'MethodDemo' has no attribute 'tempVar'

22

23 #静态函数

24 @staticmethod25 defstaticMethod(x):26 print('executing staticMethod(%s)' %( x))27 #print('classVar = %s' % classVar) #静态函数不可引用类变量

28 #print('instanceVar = %s' % instanceVar) #静态函数不可引用成员变量

29

30 a =MethodDemo()31 a.instanceMethod(1) #实例对象可引用成员函数

32 a.classMethod(1) #实例对象可引用类函数

33 MethodDemo.classMethod(1) #类函数可直接通过类调用

34 a.staticMethod(1) #静态函数可通过实例对象调用

35 MethodDemo.staticMethod(1) #静态函数可直接通过类调用

36

37 print(a.instanceMethod)38 print(a.classMethod)39 print (a.staticMethod)

运行结果:

executing instanceMethod(<__main__.methoddemo object at>,1)

classVar = This is a class variable

instanceVar = This is a instance variable

temporaryVar = This is a temporary variable

executing classMethod(,1)

classVar = This is a class variable

executing classMethod(,1)

classVar = This is a class variable

executing staticMethod(1)

executing staticMethod(1)

>

>

由此可看出,python中的变量主要包括:类变量、成员变量以及临时(局部)变量。其中类变量可以在类函数、成员函数中直接使用,可以通过类名或者实例对象直接调用。成员变量只可以在成员函数中使用,并且只能通过实例对象调用。而函数内部定义的临时变量只能在当前函数中使用。

至于类函数、静态函数、成员函数之间的区别如下:

类函数,通过装饰器@classmethod注解的函数为类函数,有一个隐含参数cls是该类本身。顾名思义,为这个类拥有的函数,可以直接通过类名直接调用,无需实例化对象,也可以通过该类的实例对象调用。

静态函数,通过装饰器@staticmethod注解的函数为静态函数,可以通过类名直接调用,也可以通过该类的实例化对象调用。其实静态方法只是在类的作用域里的函数而已,一般主要处理与这个类的逻辑关联, 如验证数据。

成员函数,有一个隐含参数self是当前实例本身。只能被该类的实例对象调用。

python 类函数 成员函数_python中的类函数、静态函数、成员函数以及类变量、成员变量...相关推荐

  1. python数据处理常用函数_Python中常用操作字符串的函数与方法总结

    Python中常用操作字符串的函数与方法总结 这篇文章主要介绍了Python中常用操作字符串的函数与方法总结,包括字符串的格式化输出与拼接等基础知识,需要的朋友可以参考下 例如这样一个字符串 Pyth ...

  2. python中延时函数_python中实现延时回调普通函数示例代码

    python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...

  3. python 定义list长度_python中list列表的高级函数 python如何统计列表的长度

    在python的函数中,如何将列表list的一部分作为函比如定义个函数,想实现的功能就是将列表a的后半部分(['c','d'])传入后面paraTestList(a[2:])中,括号里面的a[2:]命 ...

  4. python中fetchall函数_python中查询数据库时fetchone()函数和fetchall()函数的区别

    我们在用python操作数据库的时候,经常会碰见两个函数:fetchone()和fetchall() 刚开始学习的时候可能会搞不清楚他们两个的区别 其实非常简单 首先fetchone()函数它的返回值 ...

  5. python dump函数_python中实现php的var_dump函数功能

    最近在做python的web开发(原谅我的多变,好东西总想都学着...node.js也是),不过过程中总遇到些问题,不管是web.py还是django,开发起来确实没用php方便,毕竟存在的时间比较短 ...

  6. python中dump函数_python中实现php的var_dump函数功能

    最近在做python的web开发(原谅我的多变,好东西总想都学着...node.js也是),不过过程中总遇到些问题,不管是web.py还是django,开发起来确实没用php方便,毕竟存在的时间比较短 ...

  7. python sep函数_Python中带有print()函数的sep参数

    python sep函数 sep parameter stands for separator, it uses with the print() function to specify the se ...

  8. python中math计算平方根的函数_Python中Numpy和Math常用函数性能对比

    numpy是如今数据分析领域离不开的Python第三方工具库,它和Python自带的math库中都有一些基础的数学函数,比如指数.对数.三角函数等.在需要使用这些函数的时候,到底该用numpy还是ma ...

  9. python中字典的常用函数_python中得字典和常用函数总结

    字典是python中一种常见得数据类型,用{}表示,并且以键值对得形式存放数据. dic={},其中得key键值是不可变得,类型可以是字符串.其中,列表,字典不可以作为键,键值是不可变得.字符串,元组 ...

最新文章

  1. RJ-45接口连接线、MDI/MDIX接口
  2. python可以做什么项目-Python可以做大项目吗?
  3. cocos2dx-3 addImageAsync陷阱
  4. proxy connect abort处理方法_Java代理设计模式(Proxy)的几种具体实现
  5. 深度学习算法简要综述(上)
  6. LeetCode 1038. 从二叉搜索树到更大和树(逆中序-右根左-降序)
  7. 西浦与杭电计算机选哪个,四邮四电究竟谁强谁弱?哪三所大学报考更有性价比?...
  8. python telnetlib详解 执行循环命令_Python3+telnetlib实现telnet客户端
  9. python 大图找小图_20 M 的图片能压缩到 2 M?20行Python代码,无损压缩千百张图片...
  10. linux ping监控脚本,Shell长ping脚本监控网络状态
  11. GitHub上10个有趣的开源小游戏(附加在线演示)
  12. 主板检测卡常见错误代码:00(FF)
  13. photoshop ps 替换图片文字
  14. [2021.8.18]深入理解PackageManagerService
  15. java 微信时间戳转换工具_微信小程序实现时间戳格式转换
  16. 装完windows后发现C盘空间变小原因
  17. 那些年解的疑难性能问题 --- ext4碎片整理
  18. 前端 html 文字在 div 中怎么实现自动换行
  19. 生成二维码API接口,免费好用
  20. homeassistant搭建_梅林搭建home-assistant

热门文章

  1. 用神经网络逼近一个无穷级数
  2. ajax formdata 获取表单数据,node处理表单文件,获取formdata的数据
  3. 如何验证c++代码线程安全性_Python3基础:如何验证你的代码
  4. python和表格关系_python – 单表继承上的SQLAlchemy一对多关系...
  5. python idle编辑的代码文件拓展名是_Python IDLE编辑器打开后缀名为.py的文件
  6. 第6章-一阶多智体系统一致性-->6.4 切换拓扑系统一致性
  7. 【控制】《自动控制原理》胡寿松老师-第7章-线性离散系统的分析与校正
  8. 计算机网络·物理层练习题
  9. 三维的对象表示---OpenGL二次曲面和三次曲面函数
  10. 换种方法学操作系统,轻松入门Linux内核