一、python中关于超类调用super()
Python——类的定义和超类 - CSDN博客(通俗详细可用) https://blog.csdn.net/u010480899/article/details/52791520
Python入门:super(超类) - CSDN博客 https://blog.csdn.net/foryouslgme/article/details/52093001
python:抽象超类的实现 - CSDN博客 https://blog.csdn.net/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.csdn.net/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