1、#类方法@classmethod,只能访问类变量,不能访问实例变量,通过cls参数传递当前类对象,不需要实例化,直接【类名.方法名()】,可通过类对象和类对象实例访问

类方法:第一个参数强制为类对象,可以通过这个类对象访问类属性,由于没有传入类实例对象,所以不能访问类实例属性。

2、#静态方法@staticmethod,名义归类管,实际跟类没关系,跟类关联截断了,是类下单独的函数,可以不传递任何参数,不需要实例化,直接【类名.方法名(),可通过类对象和类对象实例访问

类静态方法:无法访问类属性、类实例属性、没有默认的第一个参数,其实跟类没什么关系,只是绑定在类命名空间下的函数而已。

3、#实例方法,一般类下未带修饰符@是实例方法,需要实例化后调用

类实例方法:第一个参数强制为类实例对象,可以通过这个类实例对象访问类属性,可以通过类实例对象的__class__属性访问类属性。


class DemoClass(object):name='橙子'def __init__(self,name):self.name=namedef objPrint(self,other):#实例方法print("%s 是实例化方法:%s"%(self.name,other))@classmethoddef classPrint(cls,other):#类方法print('%s 是类方法,只能调类变量 %s'%(cls.name,other))@staticmethoddef staticPrint(other):#静态方法print('我是静态方法 %s'%other)
obj=DemoClass("橙汁")#实例化类
obj.objPrint("啦啦")
DemoClass.classPrint('傻傻')
DemoClass.staticPrint('静静')C:\Users\wangli\PycharmProjects\AutoMation\venv\Scripts\python.exe C:/Users/wangli/PycharmProjects/AutoMation/case/test.py
橙汁 是实例化方法:啦啦
橙子 是类方法,只能调类变量 傻傻
我是静态方法 静静Process finished with exit code 0

4、#属性方法@property,将类方法变为属性,并赋值

class  test(object):def __init__(self,name):self.name=nameself.__food=None@propertydef wangli(self):#属性方法   方法改属性print('%s is eating %s'%(self.name,self.__food))@wangli.setterdef wangli(self,food):#属性赋值print('set to food:',food)self.__food=food
a=test('花花')
a.wangli
a.wangli='包子'
a.wangliC:\Users\wangli\PycharmProjects\AutoMation\venv\Scripts\python.exe C:/Users/wangli/PycharmProjects/AutoMation/case/test.py
花花 is eating None
set to food: 包子
花花 is eating 包子Process finished with exit code 0

python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别相关推荐

  1. Python 实例方法,类方法和静态方法的区别

    在 Python 中,实例方法(instance method),类方法(class method)与静态方法(static method)经常容易混淆.本文通过代码例子来说明它们的区别. 1.实例方 ...

  2. python静态属性@property、类方法@classmethod、静态方法@staticmethod和普通方法

    静态属性:即将类的函数通过@property属性封装,封装后实例调用该函数时,不再需要在函数后面加(),而是用类似调用数据属性的方式直接调用函数名称即可执行函数. 静态属性既可以访问类的属性,也可以访 ...

  3. Python基础教程:3个方面理解Python的类方法与静态方法

    在Python语言中有如下3种方法: 成员方法 类方法(classmethod) 静态方法(staticmethod) 可能很多同学不清楚这3种方法,尤其是后两类方法到底有什么不同.为此,本文将对这3 ...

  4. python知识:@classmethod和@staticmethod的异同

    1 说明 @staticmethod的意思就是将后面的函数转化成静态函数. 大多数情况,@classmethod和@staticmethod效果一样.但是那不是正题,正式作用是类工厂,如果有类继承关系 ...

  5. python的类方法_python 如何调用类的方法

    展开全部 使用方法e68a84e8a2ad62616964757a686964616f31333335336530:class A(object): def foo(self,x): #类实例方法 p ...

  6. 面向对象之静态方法(static)和实例化方法的区别

    这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简 ...

  7. Python中request的content,text和string方法的区别

    content,text和string方法的区别 content & text text & string content & text 源码: @propertydef te ...

  8. 面向对象编程之属性方法property

    面向对象编程之属性方法 八股文如下: property属性介绍 property属性就是负责把一个方法当做属性进行使用,这样做可以简化代码使用.当修改值或者设置值的时候只需要像属性那样使用. 定义pr ...

  9. python 实例方法 类方法_Python实例方法 静态方法 类方法

    @staticmethod和@classmethod的区别 class 类 @staticmethod @classmethod 首先创建一个类,如果想要调用Student类中的方法get_score ...

最新文章

  1. 作为AI产品经理,我们到底在优化什么?
  2. 在Angular中有多个字段
  3. ajax 实时进度_如何做好项目进度管理?
  4. 推荐ApacheCN开源的一个机器学习路线图
  5. 每日一题(50)—— 各类型与零值的比较
  6. PHP中将首字母大写的函数,在PHP中,使用()函数来将单词首字母转换为大写。
  7. jdbc Illegal value for setFetchSize()
  8. 特斯拉不顾疫情开工,马斯克放话:若要逮捕,冲我一个人来!
  9. 微信支付:nginx配置 网页授权域名 用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠。
  10. 靠java_人生靠反省,Java靠泛型
  11. 概率论与计算机的关系小论文,概率论与数理统计论文
  12. Java Lambda 归约 reduce
  13. 数学建模解决出版社资源配置问题
  14. jenkins插件管理提示_jenkins插件管理及安装
  15. 如何实现文字逐个出现的打字机效果
  16. 基于若依框架(前后端分离)-新写前端Vue页面
  17. python工资有多少-Python工程师工资多少
  18. 网页文档下载不了怎么办 亲测可用!建议收藏!
  19. php操作mysql数据_PHP - 操作MySQL数据库
  20. origin绘图软件中文版下载安装教程

热门文章

  1. ubuntu编写python脚本_python在ubuntu中的几种方法(小结)
  2. 计算机配件推荐系统论文摘要,个性化推荐系统设计
  3. hashset java 键值对_Java集合 - HashSet的定义以及用法
  4. linux arm下硬件驱动程序放哪里,Arm-Linux摄像头驱动程序的移植
  5. 安装git安装路径在哪_Atom插件安装与git的安装配置
  6. HTML+CSS+JS实现 ❤️canvas 3D立体图片相册幻灯片❤️
  7. python3+requests+unittest_python3+requests+unittest:接口自动化测试(一)
  8. linux依据时间过滤文件,详解Linux查找目录下的按时间过滤的文件
  9. mysql取消操作系统_Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)...
  10. javascript V8引擎垃圾收集机制