类
面向对象编程,是类的主要编程思想。
基本结构
"""" Basic structure """
class worker():
""""a worker may be"""
def __init__(self,name,age):
self.name = name.title()
self.age = age
self.spirit = 'Very Good'
def learn(self):
print(self.name +' is learning the new skill.')
def work(self):
print('He is working for the project.')
def rest(self):
print('He is tired and resting.')
def thought(self):
print(self.spirit)
A = worker('jack',25)
print(A.name.title())
print(A.age)
A.learn()
A.rest()
- 类里面的函数被称为“方法”
- init(),是特殊的方法,
a. 每次创建新的实例时,都会调用它。
b. 下划线的作用是一种约定,避免和其它方法冲突。
c. self必不可少,并位于其它形参之前。创建实例时会自动传递给它,不需要手动传递
d. self.name = name ,通过实例访问的变量是“属性”
e. 方法,无论是否用到属性,都必须添加self作为形参
属性修改
- 直接通过实例修改它的值
A.spirit = 'Not Well'
A.thought()
属性默认值,可以认为是初始化定义
- 通过方法修改它的值
class~
def updata_height(self,height):
self.height = height * 10
print(self.height)
A.updata_height(200)
属性的值,也可以放在方法内实现赋值
继承
class engineer(worker):
def __init__(self,name,age):
super().__init__(name,age)
# 重写父类
def thought(self):
print("Engineers have no thought !")
B = engineer('Tom',35)
print(B.name.title())
print(B.age)
B.learn()
B.rest()
- 父类必须包含在同一个文件中,并且在子类前面
- 子类继承父类,必须在类名括号中显示
- init() 这个特殊方法,只要是新建类都必须要有
- super() 是一个特殊函数,关联父类的所有属性和方法;第3行,注意相比第2行少了一个self
- 子类可以像父类一样,添加属性和方法
- 将实例用作属性,好处是单独分出子类,层次更加分明了
class lover():
def __init__(self,things='Book'):
self.things = things
def look(self):
print(self.things)
class engineer(worker):
def __init__(self,name,age):
super().__init__(name,age)
self.lover = lover()
导入类,导入Python标准库
将类放到单独的文件,主文件导入类,操作类似于函数,不做赘述
代码风格,不同于函数以小写为主,类名最好采用驼峰命名法