python初识面向对象
类与对象的关系
类: 就是创建对象的第一步,先写类
对象: 通过类来创建对象
类是对某事物的归类(类就是对属性和方法的封装)
__init__(self, 参数): 参数一般作为属性设置给对象,对象就是self,对属性的封装,(根据需要,如果在类中传参就用__init__,如果不需要传参,就直在类里定义函数即可)
def 方法(self, 参数): 方法,第一个参数一般是固定的self,当前类的对象
创建类:
class 类名:
对象是某类型的一个具体
创建对象:
变量 = 类名() #实例化 <-> 创建对象
变量.属性 #访问对象的属性信息
变量.方法() #访问类中的方法
1 class 类名:
2 def __init__(self,值1,值2): # __init__(初始化方法,又被成为构造方法)
3 self.属性 = 值1
4 self.属性 = 值2
5
6 def 方法(self):
7 方法体
8 def 方法2(self):
9 方法体2
10
11 对象名 = 类名(值1,值2)
12 对象名.方法()
13 对象名.方法2()
创建类
1 class Car: #类名首字母大写,严格遵守变量命名规则
2 pass
3 c = Car() #创建对象,对象名=类名()
4 c.color = '红色' # 对象.属性(.意思就是'的')当属性不存在的时候,添加一个属性
5 c.pai = '京A88888'
6 c.color = '黑色' # 当属性存在的时候是修改属性信息(类似于字典根据key修改value)
7 print(c.color)
8 print(c.pai)
9 结果
10 红色
11 黑色
12 京A88888
创建一个类并调用这个类
__init__方法是一个特殊的方法,初始化方法(构造方法),在创建对象的时候,默认执行这个函数
在创建对象的时候会自动的调用__init__()
self就是创建出来的对象
1 class Car:
2 def __init__(self,color,pai):
3 self.a = color
4 self.pai = pai
5 def pao(self): #在类中写的函数就是方法,self当前类的对象
6 print('我%s的%s车能跑'%(self.a,self.pai))
7 def jump(self):
8 print('我的%s车能飞'%self.pai)
9 c=Car('红色','京A88888') # 创建Car类型对象,self参数不需要管
10 c.pao()
11 c.jump()
12 c2 = Car('黑色','京B66666')
13 c2.pao()
14 c2.jump()
15 结果
16 我红色的京A88888车能跑
17 我的京A88888车能飞
18 我黑色的京B66666车能跑
19 我的京B66666车能飞
20
21 事例2,对象传参
22 class Car:
23 def __init__(self,color,pai):
24 self.a = color
25 self.pai = pai
26 def pao(self,ret):
27 print('我%s的%s车能跑%s'%(self.a,self.pai,ret))
28 def jump(self):
29 print('我的%s车能飞'%self.pai)
30 c=Car('红色','京A88888')
31 c.pao('太空')
32 c.jump()
33 结果
34 我红色的京A88888车能跑太空
35 我的京A88888车能飞
36
37
38 练习
39 用向对象的思维来模拟LOL里的盖伦上阵杀敌
40 class Hero:
41 def __init__(self,name,nickname):
42 self.name = name
43 self.nickname = nickname
44 def synopsis(self):
45 print('%s外号%s'%(self.name,self.nickname))
46 def q(self):
47 print('拎着大宝剑嗷嗷跑')
48 def w(self):
49 print('护盾')
50 def r(self):
51 print('大宝剑')
52 gw = Hero('盖伦','德玛西亚之力')
53 gw.synopsis()
54 gw.q()
55 gw.w()
56 gw.r()
57 结果
58 盖伦外号德玛西亚之力
59 拎着大宝剑嗷嗷跑
60 护盾
61 大宝剑
62
63 用向对象的思维来完成用户登录
64 class People:
65 def __init__(self,user,pwd):
66 self.user = user
67 self.passwd = pwd
68 def login(self):
69 use = input('user:')
70 password = input('passwd:')
71 if use == self.user and password == self.passwd:
72 print('登陆成功')
73 else:
74 print('登陆失败')