含义都在程序里,杜绝人为的叙述。
程序:
子类调用父类的构造函数:
class Person(object):
def __init__(self, name, gender, age,a):
print("ok")
self.name = name
self.name="china"
print("Person name:",self.name)
self.gender = gender
self.age = age
self.a=a
print("Person:",self.a)
class Student(Person):
def __init__(self, name, gender, age, school, score,b):
super(Student,self).__init__(name,gender,age,b)
self.name = name.upper()
self.gender = gender.upper()
self.school = school
self.score = score
s = Student('Alice', 'female', 18, 'Middle school', 87,1)
print(s.school)
print(s.name)
Output:
ok
Person name: china
Person: 1
Middle school
ALICE
不调用父类的构造函数:
class Person(object):
def __init__(self, name, gender, age,a):
print("ok")
self.name = name
print("Person:",self.name)
self.gender = gender
self.age = age
self.a=a
print("Person:",self.a)
class Student(Person):
def __init__(self, name, gender, age, school, score,b):
# super(Student,self).__init__(name,gender,age,b)
self.name = name.upper()
self.gender = gender.upper()
self.school = school
self.score = score
s = Student('Alice', 'female', 18, 'Middle school', 87,1)
print(s.school)
print(s.name)
Output:
Middle school
ALICE
子类先调用子类的构造函数,再调用父类的构造函数:
class Person(object):
def __init__(self, name, gender, age,a):
print("ok")
self.name = name
self.name="china"
print("Person name:",self.name)
self.gender = gender
self.age = age
self.a=a
print("Person:",self.a)
class Student(Person):
def __init__(self, name, gender, age, school, score,b):
self.name = name.upper()
self.gender = gender.upper()
self.school = school
self.score = score
super(Student, self).__init__(name, gender, age, b)
s = Student('Alice', 'female', 18, 'Middle school', 87,1)
print(s.school)
print(s.name)
Output:
ok
Person name: china
Person: 1
Middle school
china