【228】Python3 中类的静态方法、普通方法、类方法

 
 

b20e1a4e52a0694524ca7fb1de2adc1c.gif

题目部分(原文见公众号:python宝)

 python宝

https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU5NjIyOTE4OQ==&scene=123#wechat_redirect

小麦苗DB宝

https://www.xmmup.com/

一、静态方法:

    用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用。静态方法既不需要传递实例对象,也不需要传递类对象(形参没有self/cls)

使用场景

    当方法中既不需要使用实例对象(如实例属性,实例方法),也不需要使用类对象(如类属性、类方法、创建实例等时,)定义静态方法,有利于减少不必要的内存占用和性能消耗

二、普通方法:

    默认有个self参数,且只能被对象调用。

三、类方法:

    默认有个 cls 参数,可以被类和对象调用,需要加上 @classmethod 装饰器。

使用场景    

    当方法中需要使用类对象(如访问私有类属性)时,定义类方法, 如果去掉@classmethod后,就无法修改私有类属性

答案部分

     类方法的思想与实例方法非常相似,唯一的区别是,普通方法是将实例作为第一个参数隐藏地传递,而类方法是将类本身作为第一个参数传递。

class Classname:
    @staticmethod
    def staticfunc():
        print('静态方法,实例对象和类名调用')


    @classmethod
    def classfunc(cls):
        print('类方法,实例对象和类名调用')


    # 普通方法
    def normalfunc(self):
        print('普通方法,只能实例对象调用')




C = Classname()  # 创建对象


Classname.staticfunc()  # 类名调用静态方法
C.staticfunc()  # 对象调用静态方法


Classname.classfunc()  # 类名调用类方法
C.classfunc()  # 对象调用类方法


C.normalfunc()  # 对象调用普通方法

468c0e17faa3767248e4dfde4bf3ccec.jpeg

About Me:小麦粒

● 本文作者:小麦粒,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用

● 作者博客地址:https://blog.csdn.net/u010986753

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 个人微信号:pythonbao 联系我加微信群

● 个人QQ:87605025

● QQ交流群py_data :483766429

● 公众号:python宝 或 DB宝

● 提供OCP、OCM和高可用最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

b06eca4a90d26c606cf801f9d96cfa1a.gif

如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!

有您的支持,小麦粒一定会越来越好!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值