欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python 类方法 函数_Python OOP类中的几种函数或方法总结

发布时间:2024/7/23 python 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python 类方法 函数_Python OOP类中的几种函数或方法总结 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

概述

实例方法

使用实例调用时,默认传递实例本身到实例方法的第一个参数self

使用类调用时,必须传递一个实例对象到实例方法的第一个参数

静态方法

使用实例调用和类调用效果相同;

类方法

装饰器版:

使用实例调用和类调用效果相同;

classmethod(function)版:

在类中,尽量不要使用classmethod(function)实现类方法,会将其当做实例方法使用;

使用实例调用时,会默认传递实例本身到函数的第一个参数,如果函数的参数个数为0,则报错;

如果必须这样做,就使用类调用.

普通函数

在类中,尽量不要定义普通函数,会将其当做实例方法使用;

使用实例调用时,会默认传递实例本身到函数的第一个参数,如果函数的参数个数为0,则报错;

如果必须这样做,就使用类调用.

总而言之,除了装饰器版的类方法和静态方法外,其它方法与函数均可看做是实例方法.

代码与运行结果

class A(object):

def instant_method(self,*args):

print('实例方法',*args)

@classmethod

def class_method_01(clz,*args):

"""第一个参数为class,调用时自动传递"""

print('类方法(装饰器版)',*args)

def class_method_02(*args):

print('类方法(普通函数通过内置函数classmethond(function)转换版)',*args)

classmethod(class_method_02)

@staticmethod

def static_method(*args):

print('静态方法',*args)

def normal_function(*args):

print('普通函数',*args)

a=A()

# 调用实例方法

a.instant_method('通过实例调用')

A.instant_method(a,'通过类调用')

# 调用装饰器版类方法

a.class_method_01('通过实例调用')

A.class_method_01('通过类调用')

# 调用classmethod(function)版类方法

# 通过实例调用时,会默认传递实例本身到方法的第一个参数

a.class_method_02('通过实例调用')

A.class_method_02('通过类调用')

# 调用静态方法

a.static_method('通过实例调用')

A.static_method('通过类调用')

# 调用普通函数

# 通过实例调用时,会默认传递实例本身到方法的第一个参数

a.normal_function('通过实例调用')

A.normal_function('通过类调用')

输出

实例方法 通过实例调用

实例方法 通过类调用

类方法(装饰器版) 通过实例调用

类方法(装饰器版) 通过类调用

类方法(普通函数通过内置函数classmethond(function)转换版) 通过实例调用

类方法(普通函数通过内置函数classmethond(function)转换版) 通过类调用

静态方法 通过实例调用

静态方法 通过类调用

普通函数 通过实例调用

普通函数 通过类调用

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对找一找教程网的支持。如果你想了解更多相关内容请查看下面相关链接

总结

以上是生活随笔为你收集整理的python 类方法 函数_Python OOP类中的几种函数或方法总结的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。