python8之面向对象补充之知识点回顾

mac2022-06-30  30

一、self关键字

作用:调用当前方法的对象

 

class Foo: #静态字段或者公有属性 country = "中国" def __init__(self,name,count): self.name = name self.count = count def bar(self): pass obj1 = Foo("江苏",100000) obj1.bar

 

 注意:country = "中国" 属于公有字段,它的作用是:每个对象中保存相同的东西时,可以使用静态字段

二、封装

类中封装了 :字段、方法对象中封装了:普通字段的值不仅可以封装字段,还可以封装对象 class F1: def __init__(self,n): self.N = n print("F1") class F2: def __init__(self,arg1): self.a = arg1 print("F2") class F3: def __init__(self,arg2): self.b = arg2 print("F3") o1 = F1("alex") o2 = F2(o1) o3 =F3(o2) ######输出alex#### # o3 =F3(o2) o3 ====> o2 # o2 = F2(o1) o3.b.a # o1 = F1("alex") o1.b.a.N

三、继承

说明:子类继承父类,对象调用方法时,先从自己的类中去找,找不到,就会去找父类中的方法。

 

class F1: def __init__(self): print('F1') def a1(self): print("F1a1") def a2(self): print("F1a2") class F2(F1): def __init__(self): print("F1") def a1(self): print("F2a1") def a2(self): self.a2() print("F2a2") class F3(F2): def __init__(self): print("F3") def a2(self): print("F3a2") obj = F3() obj.a1() #输出 F3a2 F2a1

上面代码访问的顺序如下:

 先去到F3中找a1方法,没有找到到F2父类去找,找到了a1方法,去执行a1方法执行过程中需要调用F3中的a2方法

四、静态方法

4.1 类的组成

字段:1.普通字段(保存在对象中),2静态字段(保存在类中)方法:普通方法(保存在类中,用对象去调用) class F1: age = 18 #静态字段 def __init__(self,name): self.name = name #普通字段 def a1(self): #普通方法 print('F1a1')

4.2 静态方法

特点:

保存在类中调用者无需创建对象可以有任意个参数 class F1: @staticmethod #声明是静态方法 def a1(n1,n2): #无需传入对象,但是可以声明多个值 print('xiaogao') F1.a1(1,2) #类名.方法名 方式调用

 作用:当对象不需要传入参数时,去创建对象有些浪费,占着资源,所以还不如直接用类名直接去调用,这个类似于函数。

 

转载于:https://www.cnblogs.com/xiangjun555/articles/6993279.html

最新回复(0)