OOP简介
基本概念
OOP实现了数据和行为的融合。在编程的时候,首先把现实世界中的事物抽象成一个类(class),该类拥有数据属性(相当于以前的变量),还拥有行为属性(相当于前面的函数)。然后,具体的行为可以根据class创建实例,实例自动拥有了class定义时的属性。
- 类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
- 实例化:创建一个类的实例,类的具体对象。
- 方法:类中定义的函数。
- 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法
class Warrior:
def __init__(self, name, weapon):
'实例化时自动调用'
self.name = name
self.weapon = weapon
def speak(self, words):
print("I'm %s, %s" % (self.name, words))
def show_me(self):
print("我是%s, 我是一个战士" % self.name)
if __name__ == '__main__':
gy = Warrior('关羽', '青龙偃月刀')
gy.speak('过五关,斩六将')
gy.show_me()
- class定义时,类名推荐每个单词首字母是大写的。一般来说,class都有一个特殊的方法叫__init__,当实例化时,它自动调用,这个方法通常用于为实例绑定数据属性。绑定到实例上的属性,在类的任何方法中都可用。在类中定义的其他函数(称为方法),也绑定到了实例上,实例可以通过 「实例.属性」 的方式进行调用。
- self不是关键字,名字可以是任意合法的字符串,但是习惯于写为self,表示实例而已。
- 在python中,一切对象。实际上,字符串是str的实例,列表是list的实例。
>>> s = 'hello'
>>> type(s)
<class 'str'>
>>> alist = [1, 2]
>>> type(alist)
<class 'list'>
创建类
• 使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾
• 类名建议使用驼峰形式
class BearToy:
pass
创建实例
- 类是蓝图,实例是根据蓝图创建出来的具体对象
tidy = BearToy()
绑定方法
构造器方法
- 当实例化类的对象是,构造器方法默认自动调用
- 实例本身作为第一个参数,传递给self
class BearToy:
def __init__(self, size, color):
self.size = size
slef.color = color
if __name__ == '__main__':
tidy = BearToy('small', 'orange')
其他绑定方法
- 类中定义的方法需要绑定在具体的实例,由实例调用
- 实例方法需要明确调用
class BearToy:
def __init__(self, size, color):
self.size = size
self.color = color
def speak(self):
print('hahaha')
if __name__ == '__main__':
tidy = BearToy('small', 'orange'