python 类函数 成员函数_python中的类函数、静态函数、成员函数以及类变量、成员变量...
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中的类函数、静态函数、成员函数以及类变量、成员变量...相关推荐
- python数据处理常用函数_Python中常用操作字符串的函数与方法总结
Python中常用操作字符串的函数与方法总结 这篇文章主要介绍了Python中常用操作字符串的函数与方法总结,包括字符串的格式化输出与拼接等基础知识,需要的朋友可以参考下 例如这样一个字符串 Pyth ...
- python中延时函数_python中实现延时回调普通函数示例代码
python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...
- python 定义list长度_python中list列表的高级函数 python如何统计列表的长度
在python的函数中,如何将列表list的一部分作为函比如定义个函数,想实现的功能就是将列表a的后半部分(['c','d'])传入后面paraTestList(a[2:])中,括号里面的a[2:]命 ...
- python中fetchall函数_python中查询数据库时fetchone()函数和fetchall()函数的区别
我们在用python操作数据库的时候,经常会碰见两个函数:fetchone()和fetchall() 刚开始学习的时候可能会搞不清楚他们两个的区别 其实非常简单 首先fetchone()函数它的返回值 ...
- python dump函数_python中实现php的var_dump函数功能
最近在做python的web开发(原谅我的多变,好东西总想都学着...node.js也是),不过过程中总遇到些问题,不管是web.py还是django,开发起来确实没用php方便,毕竟存在的时间比较短 ...
- python中dump函数_python中实现php的var_dump函数功能
最近在做python的web开发(原谅我的多变,好东西总想都学着...node.js也是),不过过程中总遇到些问题,不管是web.py还是django,开发起来确实没用php方便,毕竟存在的时间比较短 ...
- python sep函数_Python中带有print()函数的sep参数
python sep函数 sep parameter stands for separator, it uses with the print() function to specify the se ...
- python中math计算平方根的函数_Python中Numpy和Math常用函数性能对比
numpy是如今数据分析领域离不开的Python第三方工具库,它和Python自带的math库中都有一些基础的数学函数,比如指数.对数.三角函数等.在需要使用这些函数的时候,到底该用numpy还是ma ...
- python中字典的常用函数_python中得字典和常用函数总结
字典是python中一种常见得数据类型,用{}表示,并且以键值对得形式存放数据. dic={},其中得key键值是不可变得,类型可以是字符串.其中,列表,字典不可以作为键,键值是不可变得.字符串,元组 ...
最新文章
- RJ-45接口连接线、MDI/MDIX接口
- python可以做什么项目-Python可以做大项目吗?
- cocos2dx-3 addImageAsync陷阱
- proxy connect abort处理方法_Java代理设计模式(Proxy)的几种具体实现
- 深度学习算法简要综述(上)
- LeetCode 1038. 从二叉搜索树到更大和树(逆中序-右根左-降序)
- 西浦与杭电计算机选哪个,四邮四电究竟谁强谁弱?哪三所大学报考更有性价比?...
- python telnetlib详解 执行循环命令_Python3+telnetlib实现telnet客户端
- python 大图找小图_20 M 的图片能压缩到 2 M?20行Python代码,无损压缩千百张图片...
- linux ping监控脚本,Shell长ping脚本监控网络状态
- GitHub上10个有趣的开源小游戏(附加在线演示)
- 主板检测卡常见错误代码:00(FF)
- photoshop ps 替换图片文字
- [2021.8.18]深入理解PackageManagerService
- java 微信时间戳转换工具_微信小程序实现时间戳格式转换
- 装完windows后发现C盘空间变小原因
- 那些年解的疑难性能问题 --- ext4碎片整理
- 前端 html 文字在 div 中怎么实现自动换行
- 生成二维码API接口,免费好用
- homeassistant搭建_梅林搭建home-assistant
热门文章
- 用神经网络逼近一个无穷级数
- ajax formdata 获取表单数据,node处理表单文件,获取formdata的数据
- 如何验证c++代码线程安全性_Python3基础:如何验证你的代码
- python和表格关系_python – 单表继承上的SQLAlchemy一对多关系...
- python idle编辑的代码文件拓展名是_Python IDLE编辑器打开后缀名为.py的文件
- 第6章-一阶多智体系统一致性-->6.4 切换拓扑系统一致性
- 【控制】《自动控制原理》胡寿松老师-第7章-线性离散系统的分析与校正
- 计算机网络·物理层练习题
- 三维的对象表示---OpenGL二次曲面和三次曲面函数
- 换种方法学操作系统,轻松入门Linux内核