# class 中的 init () 函数
在 python 中创建一个 class 后,通常会创建一个 __init__(self)
的函数。之后我们在程序中,并且。只有涉及到这个 class,那么 __init__(self)
函数就会默认执行。
class Person(): | |
def __init__(self): | |
self.name = '百三' | |
print('%s是个好人' %self.name) | |
def eat(self): | |
print('%s要吃饭' %self.name) | |
a = Person() | |
------ | |
百三是个好人 |
# class 中的全局变量
在同一个 class 下创建函数有一个很大的好处:这些函数可以共用一批全局变量。这些全局变量只要我们在 __init__()
函数中利用 self.xxx = xxx
定义了,并且在后续 class 中定义的函数包含一个 self 参数即可。
class Person(): | |
def __init__(self, name, identity): | |
self.name = name | |
self.identity = identity | |
def who(self): | |
print('%s是一名%s' %(self.name, self.identity)) | |
def eat(self): | |
print('%s要吃饭' %self.name) | |
a = Person('百三', '学生') | |
a.who() | |
a.eat() | |
------ | |
百三是一名学生 | |
百三要吃饭 |
# 子类继承了父类的所有变量和函数
可以子类可以利用 super(xxx, self).__init__()
的方法集成父类的全部变量和函数。继承的变量和函数也可以改写,这种改写仅改写子类,不影响父类。
class Person(): | |
def __init__(self, name, identity): | |
self.name = name | |
self.identity = identity | |
def who(self): | |
print('%s是一名%s' %(self.name, self.identity)) | |
def eat(self): | |
print('%s要吃饭' %self.name) | |
class Student(Person): | |
def __init__(self, name, identity, school, score): | |
super(Student, self).__init__(name, identity) # 使用父类的初始化方法来初始化子类 | |
self.school = school | |
self.score = score | |
def who(self): # 对父类的 who 函数进行重写 | |
print('%s是一名%s的%s,成绩为%s' %(self.name, self.school, self.identity, self.score)) | |
per = Person('百三', '学生') | |
stu = Student('百三', '学生', '中山大学', '87') | |
stu.eat() | |
stu.who() | |
per.who() | |
------ | |
百三要吃饭 | |
百三是一名中山大学的学生,成绩为87 | |
百三是一名学生 |