首页 > 编程语言 >在Python中,如何从子类调用父类的方法是?

在Python中,如何从子类调用父类的方法是?

时间:2023-11-02 20:33:04浏览次数:42  
标签:Foo Python 子类 baz 父类 super

内容来自 DOC https://q.houxu6.top/?s=在Python中,如何从子类调用父类的方法是?

在Python中创建一个简单的对象层次结构时,希望能够从派生类调用父类的方法。在Perl和Java中,有一个关键字可以做到这一点(super)。在Perl中,我可能会这样做:

package Foo;

sub frotz {
    return "Bamf";
}

package Bar;
@ISA = qw(Foo);

sub frotz {
   my $str = SUPER::frotz();
   return uc($str);
}

在Python中,似乎必须显式地从子类指定父类的名称。在上面的例子中,我需要像Foo::frotz()这样去做。

这似乎不太对劲,因为这个行为使得构建深层层次结构变得困难。如果子类需要知道定义了继承方法的类是什么,那么就会出现各种信息痛苦。

这是一个实际的限制,还是我对Python的理解有缺陷?


使用 super() 函数:

class Foo(Bar):
    def baz(self, **kwargs):
        return super().baz(**kwargs)

对于 Python < 3,必须明确选择使用新式类,并使用:

class Foo(Bar):
    def baz(self, arg):
        return super(Foo, self).baz(arg)

标签:Foo,Python,子类,baz,父类,super
From: https://www.cnblogs.com/xiaomandujia/p/17806255.html

相关文章

  • 代码随想训练营第二十三天(Python)| 669. 修剪二叉搜索树 、108.将有序数组转换为二叉搜
    669.修剪二叉搜索树树的修剪方式赋值。1、递归法classSolution:deftrimBST(self,root:Optional[TreeNode],low:int,high:int)->Optional[TreeNode]:ifrootisNone:returnNoneifroot.val<low:returnself.tr......
  • 洛谷P5707 【深基2.例12】上学迟到(Python 3)
    题。审题:1.yyy要花十分钟垃圾分类!不要忘了在总分钟数上加102.如果时或分为个位数,则需要用0在前补位 思路:先把总共需要的分钟数算出来,然后求时和分。如果时大于8,那么再补上24,用来使时间符合格式。 关键点:1.补位:print('%02d'%m),具体看这篇2.注意当分钟数恰好为60倍数的......
  • python tkinter事件循环中一直检测初始化加载文件有没有加载成功
     pythontkinter事件循环中一直检测初始化加载文件有没有加载成功importtkinterastkdefcheck_file_loaded():#检查文件是否加载成功的逻辑iffile_loaded:#文件加载成功,执行相应操作print("文件加载成功")else:#文件未加......
  • python01
    字面量:在代码中,被写下来的固定的值,称为字面量。Python中常见的有6种值的类型:数字(number):整数(int),浮点数(float),复数(complex),布尔(bool)字符串(string):字符串(string)引号列表(list):有序的可变序列元组(Tuple):有序的不可变序列集合(set):无序不重复集合字典(Diction......
  • 【python】-bash: /usr/local/bin/pip: /usr/bin/python: bad interpreter: No such f
    安装单独的第三方库时没有问题pipinstallpandas但是一旦使用requirement.txt批量安装第三方库时就会出现-bash:/recorddata/rebuydata/hppy/soft/python3/bin/pip3:/usr/local/source/hppy/soft/python3/bin/python3.6:badinterpreter:没有那个文件或目录badinterpreter......
  • python爬虫利用代理IP分析大数据
    前言随着互联网快速发展和普及,数据已经成为企业和个人决策的重要依据。而爬虫技术正是获取数据的重要手段,而代理IP则是爬虫技术中非常重要的一个环节。通过使用代理IP,可以突破网站的限制,获取更多的信息。本文将介绍如何使用Python爬虫利用代理IP分析大数据,同时提供代码案例。一、什......
  • python读取任意编码格式的文本
    前言有的时候默认使用utf8格式来读取文本,会导致报错。如果对性能没有要求,可以在读取前使用chartdet库来判断文本编码。代码示例importchardetdefget_code(file_path):withopen(file_path,'rb')asf:data=f.read()result=chardet.detect(dat......
  • 【视频】风险价值VaR原理与Python蒙特卡罗Monte Carlo模拟计算投资组合实例|附代码数
    原文链接:http://tecdat.cn/?p=22862 最近我们被客户要求撰写关于风险价值的研究报告,包括一些图形和统计输出。风险价值(VaR)是一种统计数据,用于量化公司、投资组合在特定时间范围内可能发生的财务损失程度什么是风险价值(VaR)?该指标最常被投资银行和商业银行用来确定其机构......
  • Python中判断为false
    列表和元祖、字典为空、数字0、布尔False、空字符串==》if判断为Falsex=()ifx:print(x)print('不为空')else:print(x)print('空')#输出:()空注意:x={}这里的类型为空字典x={1,2,3,4}这里的类型为set集合列表和元祖、字......
  • Python循环数组的方法
    Python的遍历数组的三种方式。遍历方式假设:nums=[4,5,6,10,1]第一种,forin的语法,这种语法很方便,但是在写Python算法里面用到的少fornuminnums:print(num)第二种是下标访问,range生成0到数组最大长度的下标数组forindexinrange(len(nums)):print(index,nu......