继承
class 子类( 父类1 , 父类2 , . . . ) :
多个父类的继承
class Person :
def __init__ ( self, name, age) :
self. name = name
self. age = age
def say_hi ( self) :
print ( '你好,我叫{0},年龄是{1}' . format ( self. name, self. age) )
class Student ( Person) :
def __init__ ( self, name, age, stu_id) :
Person. __init__( self, name, age)
self. stu_id = stu_id
def say_hello ( self) :
Person. say_hi( self)
print ( '我是学生,我的学号是' , self. stu_id)
单层继承
class Person :
def __init__ ( self, name, age) :
self. name = name
self. age = age
def say_hi ( self) :
print ( '你好,我叫{0},年龄是{1}' . format ( self. name, self. age) )
class Student ( Person) :
def __init__ ( self, name, age, stu_id) :
super ( Student, self) . __init__( name, age)
self. stu_id = stu_id
def say_hello ( self) :
Person. say_hi( self)
print ( '我是学生,我的学号是' , self. stu_id)
s = Student( 'tom' , 20 , '201610101' )
s. say_hello( )
'''
你好,我叫tom,年龄是20
我是学生,我的学号是 201610101
'''
查看类的继承关系
Student. mro( )
'''
[__main__.Student, __main__.Person, object]
'''
方法重写
class Dimension :
def __init__ ( self, x, y) :
self. x = x
self. y = y
def area ( self) :
pass
class Circle ( Dimension) :
def __init__ ( self, r) :
Dimension. __init__( self, r, 0 )
def area ( self) :
return 3.14 * self. x* self. x
class Rectangle ( Dimension) :
def __init__ ( self, w, h) :
Dimension. __init__( self, w, h)
def area ( self) :
return self. x* self. y
d1 = Circle( 2 )
d2 = Rectangle( 1 , 2 )
print ( d1. area( ) )
print ( d2. area( ) )
class Dimension :
def __init__ ( self, x, y) :
self. x = x
self. y = y
def area ( self) :
pass
class Circle ( Dimension) :
def __init__ ( self, r) :
Dimension. __init__( self, r, 0 )
def __area ( self) :
return 3.14 * self. x* self. x
d1 = Circle( 2 )
print ( d1. _Circle__area( ) )
'''
12.56
'''
多态
class Person :
def __init__ ( self, name, age) :
self. name = name
self. age = age
def __str__ ( self) :
return '{0},{1}' . format ( self. name, self. age)
p = Person( 'tom' , 20 )
print ( p)
'''
tom,20
'''
x = 1
y = 2
x+ y
x. __add__( y)
运算符重载
class MyList :
def __init__ ( self, x, y) :
self. x = x
self. y = y
def __add__ ( self) :
for i in range ( 4 ) :
print ( i, end= ' ' )
list1 = MyList( 1 , 2 )
list1. __add__( )