1 #_author: liu.cao
2 #date: 2018/7/8
3
4 # 定义类并执行类中的方法:
5 # class 类名:
6 # def 方法名(self,arg):
7 # print(arg)
8 # return 1
9 # 中间人=类名()
10 # ret=中间人.方法名(1)
11 # print(ret)
12
13 class Bar:
14
15 def foo(self,arg):
16 print(self,self.name,self.age,self.gender,arg)
17
18 z=Bar()
19 z.name='xiaohai'
20 z.age=18
21 z.gender='male'
22 z.foo(888)
23
24 z1=Bar()
25 z1.name='hello'
26 z1.age=10
27 z1.gender='famale'
28 z1.foo(666)
29
30
31 #构造方法init
32 # class Bar:
33 # def __init__(self):
34 # pass
35 #
36
37
38
39
40 class Person:
41 def __init__(self,name,age):#构造方法:构造方法的特性:类名()自动执行构造方法
42 self.name=name
43 self.age=age
44 def show(self):#普通方法
45 print("%s-%s"%(self.name,self.age))
46 xiaohai=Person('小明',20)
47 xiaohai.show()
48
49 #--封装的适用场景--
50 # 1,如果多个函数中有一些相同的参数时,转换成面向对象
51
52 #继承
53 class F:
54
55 def f1(self):
56 print("F.f1")
57
58 def f2(self):
59 print('F.f2')
60
61 class S(F):
62 def s1(self):
63 print('S.s1')
64
65 def f2(self):#继承F的方法并重写
66 #super(S,self).f2()#执行父类(基类)中的f2方法,推荐用这种方法(super是固定写法)
67 #F.f2(self) #执行父类(基类)中的f2方法
68 print('S.f2')
69
70 """
71 obj=S()
72 obj.s1()
73 obj.f2()
74 """
75 '''
76 obj=S()
77 obj.s1()#s1中的self是形参,此时代指obj
78 obj.f1()#self永远是指调用方法的调用者
79 '''
80 obj=S()
81 obj.f2()