超类调用super()及__name__变量及self含义

本文详细介绍了Python中super()函数的使用方法及其在多重继承中的作用,并解释了__name__ == '__main__'的含义及应用场景。帮助读者更好地理解和运用Python类和模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、python中关于超类调用super()

Python——类的定义和超类 - 优快云博客(通俗详细可用 https://blog.youkuaiyun.com/u010480899/article/details/52791520

Python入门:super(超类) - 优快云博客  https://blog.youkuaiyun.com/foryouslgme/article/details/52093001

python:抽象超类的实现 - 优快云博客  https://blog.youkuaiyun.com/DucklikeJAVA/article/details/73556138

Differences Between PyQt4 and PyQt5 — PyQt 5.10.1 Reference Guide  http://pyqt.sourceforge.net/Docs/PyQt5/pyqt4_differences.html?highlight=super

# _*_ coding:utf-8 _*_
__metaclass__=type
class Person:
    def setName(self,name):
        self.name=name
    def getName(self):
        return self.name
    def greet(self):
        print('Hello,%s' %self.name)
        
test1=Person()
test1.setName('Jack Chen')
print(test1.getName())

https://blog.youkuaiyun.com/chenxiao_ji/article/details/50311597

Python super() 函数 | 菜鸟教程  http://www.runoob.com/python/python-func-super.html

描述
super() 函数是用于调用父类(超类)的一个方法。
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。

二、关于__name__ == '__main__' 含义:

if __name__ == '__main__' 如何正确理解? - 知乎  https://www.zhihu.com/question/49136398
Python 中的 if __name__ == '__main__' 该如何理解 | Huoty's Blog  http://blog.konghy.cn/2017/04/24/python-entry-program/    

python的内置变量__name__,检测模块是被导入还是被直接执行。
__name__是一个内置系统变量。(前后加了双下划线是因为是因为这是系统定义的名字)。
__name__就是标识模块的名字的一个系统变量。这里分两种情况:
假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,模块全部直接执行。通过if判断这样就可以执行“__mian__:”后面的主函数内容;

假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__main__:”后面的内容。

if __name__ == '__main__' 如何正确理解? - 知乎  https://www.zhihu.com/question/49136398

__name__系统变量指示模块应如何被加载,值为"__main__"时表示当前模块是。
由于主程序代码无论模块是被导入还是直接被执行都会运行,所以我们需要一种方式在运行时该方式也就是__name__系统变量。如果模块是被导入,__name__的值为模块名字;如果是被直接执行,__name__的值为"__main__"。

此处所说的模块可以简单理解为一个.py文件。

第三期 · 形象的理解Class的init、self 、@staticmethod、 @classmethod、@property  https://zhuanlan.zhihu.com/p/22810357



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值