♣
题目部分(原文见公众号: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() # 对象调用普通方法
About Me:小麦粒
● 本文作者:小麦粒,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用
● 作者博客地址:https://blog.csdn.net/u010986753
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● 个人微信号:pythonbao 联系我加微信群
● 个人QQ:87605025
● QQ交流群py_data :483766429
● 公众号:python宝 或 DB宝
● 提供OCP、OCM和高可用最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!
有您的支持,小麦粒一定会越来越好!