Python类间函数调用的三种实现方式

Ruby
Ruby
发布时间:2026-10-13| 6人浏览过
原创

本文详解Python中Class A与Class B之间函数调用的三种常见方式。包括在B的方法内实例化A、通过B的构造函数传入A实例、以及在B内部直接实例化A。每种方法均提供代码示例与逻辑分析,帮助开发者理解不同场景下的类交互策略。

假设存在两个类:Class A 和 Class B。其中,Class A 内部定义了方法 a(),而 Class B 内部定义了方法 b()。

接下来讨论如何在 Class B 中调用 Class A 定义的方法 a()。本文将介绍三种可行的调用实现方式。

第一种方法:

在 Class B 定义的方法 fuction() 内部,实例化 Class A 的对象 a,随后通过该对象 a 来调用 Class A 的方法 a()。

最后,在 main 函数中实例化 Class B 的对象 b,并调用 b 对象中的 fuction() 方法以执行调用逻辑。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
class A():
 def __init__(self,parent):
 self.parent = parent
 
 def a(self):
 print 'Class A'
 
 
class B():
 def fuction(self):
 a = A(None)
 a.a()
 
if __name__ == '__main__':
 b = B()
 b.fuction()

第二种方法:

在 Class B 的 __init__() 构造函数中建立 Class A 与 Class B 之间的关联,具体实现代码如下。

首先在 main 函数中实例化 Class A 的对象 a,随后将该对象 a 作为参数传入 Class B 的 __init__(self, object) 构造函数中。此时,self.object 属性将指向 Class A 的实例。

通过上述关联,即可直接调用 Class A 中的方法。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
class A():
 def __init__(self,parent):
 self.parent = parent
 
 def a(self):
 print "Class A"
 
class B(object):
 def __init__(self,object):
 self.object = object
 self.object.a()
 
 def b(self):
 print "Class B"
 
if __name__ == '__main__':
 
 a = A(None)
 b = B(a)
 b.b()

第三种方法:

直接在 Class B 内部实例化 Class A 的对象,并将该对象赋值给 Class B 的实例属性 self.A_object。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
class A():
 
 def a(self):
 print "Class A"
 
class B(object):
 def __init__(self):
 self.A_object = A()
 self.A_object.a()
 
 def b(self):
 print "Class B"
 
if __name__ == '__main__':
 
 b = B()
 b.b()

以上关于 Python 类间函数调用关系的详解内容分享完毕,希望能为读者提供参考与帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。