python中类.函数名(self) 和 self.函数名()的调用方式

 更新时间:2025年09月17日 09:14:23   作者:Lumiron  
本文主要介绍了python中类.函数名(self) 和 self.函数名()的调用方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1. 基本等价性

class MyClass:
    def method(self, x):
        return x * 2

obj = MyClass()

# 这两种调用方式是等价的
result1 = obj.method(5)        # self.method(5)
result2 = MyClass.method(obj, 5)  # 类.方法(self, 5)

print(result1, result2)  # 输出: 10 10

2. 重要区别

2.1 继承和多态

class Parent:
    def method(self):
        print("Parent method")

class Child(Parent):
    def method(self):
        print("Child method")

obj = Child()

# 这两种方式的行为不同
obj.method()          # 输出: "Child method" (动态绑定)
Parent.method(obj)    # 输出: "Parent method" (静态调用)

2.2 描述符协议

如果方法被包装成属性或有其他描述符行为,两种方式可能不同:

class MyClass:
    @property
    def method(self):
        return "property method"
    
    def real_method(self):
        return "real method"

obj = MyClass()

print(obj.method)          # 输出: "property method" (作为属性访问)
print(MyClass.method)      # 输出: <property object> (访问属性对象)

3. 使用场景

推荐使用 self.方法名()

1、大多数情况下

2、支持多态和继承

3、代码更清晰

使用 类.方法名(self) 的情况

1、需要显式调用父类方法时

2、需要绕过方法重写时

3、在某些元编程场景中

class Parent:
    def method(self):
        print("Parent")

class Child(Parent):
    def method(self):
        # 先调用父类方法
        Parent.method(self)  # 显式指定类
        print("Child")

4. 总结

特性self.方法名()类.方法名(self)
多态支持✅ 是❌ 否
继承行为动态绑定静态绑定
代码清晰度
使用频率常用特殊情况

到此这篇关于python中类.函数名(self) 和 self.函数名()的调用方式的文章就介绍到这了,更多相关python 类.函数名(self) 和 self.函数名()调用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Python使用python-docx库操作word(创建、读取和插入)文档的完整指南

    Python使用python-docx库操作word(创建、读取和插入)文档的完整指南

    python-docx是一个可以操作Word文档的python开源库,简单易用,适合用来自动化办公,下面小编就和大家详细介绍一下如何使用python-docx实现创建,打开,读取和插入Word吧
    2025-12-12
  • Python轻松实现提取视频音频并去除静音片段

    Python轻松实现提取视频音频并去除静音片段

    在处理视频素材时,我们常常需要提取其中的音频,并且希望去除冗长的静音部分,借助Python的几个优秀库,我们可以快速实现这一需求,下面我们就来看看具体实现方法吧
    2025-10-10
  • 关于pygame.surface.blit()方法4个参数的使用

    关于pygame.surface.blit()方法4个参数的使用

    这篇文章主要介绍了关于pygame.surface.blit()方法4个参数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • python jupyter入门教程

    python jupyter入门教程

    Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含代码、方程式、可视化和文本的文档,今天通过本文给大家分享python jupyter入门教程,需要的朋友一起看看吧
    2021-08-08
  • Python 存储字符串时节省空间的方法

    Python 存储字符串时节省空间的方法

    这篇文章主要介绍了Python 存储字符串时节省空间的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • python画图常规设置方式

    python画图常规设置方式

    这篇文章主要介绍了python画图常规设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Django基于Token的验证使用的实现

    Django基于Token的验证使用的实现

    本文主要介绍了Django基于Token的验证使用的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • python读写删除复制文件操作方法详细实例总结

    python读写删除复制文件操作方法详细实例总结

    这篇文章主要介绍了python读写删除复制文件操作方法详细实例总结,需要的朋友可以参考下
    2021-04-04
  • Python实战之OpenCV实现猫脸检测

    Python实战之OpenCV实现猫脸检测

    今天给大家带来的是关于Python的相关知识,文章围绕着OpenCV实现猫脸检测展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Tensorflow中的dropout的使用方法

    Tensorflow中的dropout的使用方法

    这篇文章主要介绍了Tensorflow中的dropout的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论