类的继承类的属性总结类的方法总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的继承类的属性总结类的方法总结相关的知识,希望对你有一定的参考价值。

类的继承

继承是相对两个类而言的父子关系,子类继承了父类的所有公有属性和方法,继承可以重用已经存在的方法和属性,减少代码的重复编写,Python 在类名后使用一对括号来表示继承关系,括号中的类即为父类,如 class Myclass(ParentClass) 表示 Myclass(子类) 继承了 ParentClass(父类) 的方法和属性

#!/usr/bin/python

class People(object):
color = ‘yellow‘

def think(self):
    print "I am a thinker"

class Chinese(People): # 这里表示 Chinese 继承了 People
pass

cn = Chinese() # 因为 Chinese 继承了 People ,所以可以直接调用 People 里面的属性和方法
print cn.color
cn.think()

如果父类定义了 init 方法,子类必须显式调用父类的 init 方法:
!/usr/bin/python

class People(object):
color = ‘yellow‘

def __init__(self, c):
    print "Init...."

def think(self):
    print "I am a thinker"

class Chinese(People):
def init(self):
People.init(self,‘red‘) # 显式调用父类的init方法

cn = Chinese()
多重继承即一个子类可以继承多个父类
#!/usr/bin/python

class A(object):
def aaa(self):
print "aaa"

class B(object):
def bbb(self):
print "bbb"

class C(A, B): # 子类 C 同时继承了两个父类 A 和 B
pass

cn = C()
cn.aaa() # 可以直接调用父类的方法
cn.bbb()

当父类中出现多个自定义的init方法时,多重继承只执行第一个父类的init方法,其他不执行:
[[email protected] ~]# cat 1.py
#!/usr/bin/python

class A(object):
def aaa(self):
print "aaa"

def __init__(self):
    print "A"

class B(object):
def bbb(self):
print "bbb"

def __init__(self):
    print "B"

class C(A, B): # 这里继承了 A 的 init 方法(谁在前面就先继承谁的)
pass

cn = C()

[[email protected] ~]# python 1.py # 执行结果可知只执行了第一个父类的init方法
A

如下,通过对类实例化之后,打印出来的是一个对象:
[[email protected] ~]# cat 1.py
#!/usr/bin/env python

class People(object):
pass

ren = People()
print ren

[[email protected] ~]# python 1.py
<main.People object at 0x7fbb9dc>

我们可以通过 str 来返回我们想要的字符串:
[[email protected] ~]# cat 1.py
#!/usr/bin/env python

class People(object):
pass

def __str__(self):
    return "This is a people"

ren = People()
print ren

结果:
[[email protected] ~]# python 1.py
This is a people

init 用于类的初始化,也就是说,当实例化一个对象时,自动执行 init 下面的属性和方法:
#!/usr/bin/env python

class People(object):
color = ‘yellow‘

def __init__(self):
    self.color = ‘black‘

ren = People() # 这里实例化一个对象,那么就会执行init下的内容,则 color 的值变为 black
print ren.color # 当对象去调用的时候,color 值为 black
print People.color # 当类去调用的时候,color 值不变,还是 yellow

[[email protected] ~]# python 1.py
black
yellow

del 用于释放对象所占用的资源,注意 del 是在脚本要退出之前执行的
复制代码
#!/usr/bin/env python

class People(object):
color = ‘yellow‘

def __init__(self):
    self.fd = open(‘/etc/passwd‘)    # 我打开了一个文件

def __del__(self):
    self.fd.close()                  # 可以在__del__中关掉这个文件

ren = People()

以上是关于类的继承类的属性总结类的方法总结的主要内容,如果未能解决你的问题,请参考以下文章

关于php继承类的总结

继承知识总结

总结

Python基础总结之初步认识---class类的继承(下)。第十五天开始(新手可相互督促

Python类的继承和方法重写总结

面向对象总结