面向对象 - 封装
面向对象编程
1、面向对象不是所有情况都适用
2、面向对象编程
a, 定义类
class 类名:
def 方法(self,参数)
代码块
b, 根据类创建对象,也叫做创建类的实例
1 举例: 2 class Oldboy: 3 def fuc(self,args): 4 print('Goodday',self) 5 6 def recod(self,args,kwargs): 7 pass 8 9 obj = Oldboy() 10 print(obj) 11 obj.fuc('hello') 12 13 # outputs 14 <__main__.Oldboy object at 0x00000065F1B04080> 15 Goodday <__main__.Oldboy object at 0x00000065F1B04080>
3、self为形式参数,由python内部自行传递,哪个对象调用类的方法,self就指向哪个方法的内存地址(如上例,self传递的就是obj)
4、面向对象的特性:封装
在创建实例(类+括号)时,就是在类中执行__init__(self)方法
1 class Foo: 2 # def __init__(self,args): 3 # self.name = 'alex' 4 # self.backend = args 5 def __init__(self): 6 print('init') 7 8 def fuc(self): 9 pass 10 11 12 obj = Foo() ==> init
通过以上实例,我们就可以通过__init__(self)来进行封装 __init__(self) 也叫做构造方法
1 1 class Foo: 2 2 def __init__(self,args): --> 被称为构造方法 3 3 self.name = 'alex' 4 4 self.backend = args 5 5 ==> 通过__init__(self) 把www.etiantian.org封装在了self.backend 6 6 7 7 def fuc(self): 8 8 print(self.backend) 9 9 10 10 def recod(self): 11 11 print(self.backend) 12 12 13 13 obj = Foo('www.etiantian.org') 14 14 obj.fuc() ==> www.etiantian.org 15 15 obj.recod() ==> www.etiantian.org
面向对象应用场景
1,封装参数,当同一类型的方法具有相同参数时,直接封装到对象即可
2,以类为模板,可以创建多个对象,并且每个对象封装的数据可以不一样

浙公网安备 33010602011771号