深入浅析python继承问题

作者:mrr 时间:2023-05-20 15:22:26 

有如下的代码:


class p1:
def __init__(self,a,b):
print("init in p1")
self.a1=a
self.b1=b
self.f1()
def f1(self):
print("f1 in p1")
class c1(p1):
def __init__(self,a,b,c=2):
print("init in c1")
p1.__init__(self,a,b)
self.c1=c
self.f1()
def f1(self):
print("f1 in p2")
class c2(c1):
pass
c=c2(11,22)
print(c.a1)
print(c.b1)
print(c.c1)

然后代码的运行结果如下:


F:\python_code\test>python class_init.py
init in c1
init in p1
f1 in p2
f1 in p2
11
22
2

关于的代码的运行过程,我有以下的疑问,我在 c1 的 __init__ 函数中会调用到p1.__init__(),然后会每次都是运行 c1.f1() 函数,没有运行 p1.f1() 的函数,在 p1 运行的 f1(),怎么也是 c1.f1()。为什么?

原因分析:

p1.__init__(self,a,b)

这行代码中的self是c1的对象。所以传给p1里面的self也就是c1的呀。

以上内容所述通过代码给大家介绍了python继承问题,希望对大家有所帮助!

标签:python,继承
0
投稿

猜你喜欢

  • Python使用sftp实现上传和下载功能(实例代码)

    2023-12-26 09:35:41
  • Python机器学习之基础概述

    2021-07-18 19:07:59
  • ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例

    2023-11-17 02:54:39
  • Golang TCP粘包拆包问题的解决方法

    2023-07-18 11:04:43
  • SQL Server中单引号的两种处理技巧

    2008-05-23 13:30:00
  • Visual Studio 2017使用EF选择MySQL数据源

    2024-01-25 04:13:23
  • oblog4.6转换ucenterHome1.5过程全记录,提供老用户无法登陆的补丁

    2009-10-29 12:04:00
  • python实现关闭第三方窗口的方法

    2023-11-01 17:25:09
  • tensorflow图像裁剪进行数据增强操作

    2023-06-23 14:33:20
  • 在Python中使用mechanize模块模拟浏览器功能

    2022-04-12 10:13:56
  • Python爬虫之pandas基本安装与使用方法示例

    2023-11-26 21:49:35
  • Mysql性能优化案例 - 覆盖索引分享

    2024-01-27 15:16:59
  • Python 使用requests模块发送GET和POST请求的实现代码

    2023-07-19 23:19:27
  • 跟老齐学Python之dict()的操作方法

    2022-05-12 16:54:43
  • 用CSS实现柱状图(Bar Graph)的方法(三)——复杂柱状图的实现

    2008-05-26 13:36:00
  • python中from module import * 的一个坑

    2021-10-29 08:23:51
  • javascript自定义加载loading效果

    2024-04-27 15:23:14
  • php修改NetBeans默认字体的大小

    2024-06-05 09:48:07
  • 详解PHP中数组函数的知识点

    2023-05-29 10:59:11
  • pytorch+sklearn实现数据加载的流程

    2022-05-15 14:44:27
  • asp之家 网络编程 m.aspxhome.com