オブジェクト(OPP)向けの三大特徴の継承

6173 ワード

OPP(         )     :
1.
2.
3.

.
1. :
a b
OPP
2. : ,
, ,
, a b, a b ( ) ( ).
: a b,a ( ),b ( )






class Tecahter:
school = 'oldboy'

def __init__(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender

def tecahing(self):
print('%s is teaching' % self.name)

class Student():
school = 'oldboy'

def __init__(self,name,age,gender,number):
self.name = name # , , , ,
self.age = age
self.gender = gender
self.number = number

def studying(self):
print('%s is studying')

, , ,
, ,
class Teacher:
school = 'oldboy'

def __init__(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender

def tecahing(self):
print('%s is tecahing' % self.name)

class Student(Teacher):
def studying(self):
print('%s is studying' % self.name)

t1 = Teacher('egon',67,'male')
t1.tecahing()
print(t1.age)
print(t1.gender)

stu1 = Student('deng',18,'male')
stu1.studying()
print(stu1.age)
print(stu1.gender)


.
,
, ?
, ( , ),

, , , ,
( , , ),
, , ( ), ,
( , )
, , ,

, , ,
3

3
class OldboyPerson: # OldboyPerson , ,
school = 'oldboy'

def __init__(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender

def say_hi(self):
print('hello,i am %s' % self.name)


class Tecaher(OldboyPerson):
def tecahing(self):
print('%s is tecahing' % self.name)

class Student(OldboyPerson):
def studying(self):
print('%s is studying' % self.name)


t1 = Tecaher('egon',79,'female')
t1.tecahing()
t1.say_hi() # ,egon deng ,

stu1 = Student('deng',18,'man')
stu1.studying()
stu1.say_hi()

.

--->

---> ---> ---> ..........--->object

object:
object , object
object
object

:
object python3
python2 object object


class Father(object):
age = 30

class Son(Father):
# age = 7
pass
s1 = Son()
# print(s1.__dict__)
# s1.age = 29 # age, age, , age
# print(s1.__dict__)
print(s1.age)


.

: list


class MyList(list):
def append(self,object):
print('append run')
if type(object) == int:
list.append(self,object)
else:
print(' ')

li = MyList()
# li.append(100)
# print(li)

li.append('abc')
print(li)


.
:
, ,


:
, , ,
,

class Person:
def __init__(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender

def say_hi(self):
print(' , %s' % self.name)

class Student(Person):
# say_hi
def say_hi(self):
print('hello my name is %s,age is %s' % (self.name,self.age))

stu1 = Student('deng',18,'man')
stu1.say_hi()

.
,
super().
class Person:
test = '1234'

def __init__(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender

def say_hi(self):
print(self.name,self.age,self.gender)

class Student(Person):
def __init__(self,name,age,gender,number):
# self.name = name
# self.age = age
# self.gender = gender
# Person.__init__(self,name,age,gender) #
# super(Student, self).__init__(name,sex,age) # super python2
super().__init__(name,age,gender) # super()
self.number = number
print(super().test) #
def say_hi(self):
super().say_hi()
print(self.number)


stu1 = Student("Egon", "woman", 100,"olboy 007")
stu1.say_hi()

転載先:https://www.cnblogs.com/dengyanchuan/p/10402185.html