面对对象编程基础之核心知识梳理一

五、核心知识梳理

1.面向对象之self理解和封装

1.1 例子
#!/usr/bin/env python
#-*- coding:utf-8 -*-
class test:
    def func_1(self,para_1):
        print (para_1,self)

obj = test()
obj01 = test()


print (obj)
print (obj.func_1('option'))
print ('===================')
print (obj01)
print (obj01.func_1('option'))

在这里插入图片描述

  • obj

  • obj01

两个值相同

self是一个形式参数,Python内部传递

obj = test()
obj.func_1('option')

这个过程,将obj传递给self,将option传递给func_1

1.2 为啥要对class进行实例化成一个对象

具体的类

class test:
 def func_1(self,para_1):
    print (para_1,self)
    return self.para_1
 def func_2(self,para_1):
    print (para_1,self)
 def func_3(self,para_1):
    print (para_1,self)
    
    
obj = test()
obj.para_1 = 'haha'
print (obj.func_1())
print (obj.func_2())
print (obj.func_3())  

在这里插入图片描述

这种要重传参数

obj = test()
obj.para_1 = 'haha'
obj.func_1('123')
obj.func_2('456')
obj.func_3('789')

在这里插入图片描述

而且para_1的赋值不能丢

所以要对代码进行修改

进行修改:

class test:
 def func_1(self):
     print (self.para_1,self)
     return self.para_1
 def func_2(self):
     print (self.para_1,self)
     return self.para_1
 def func_3(self):
     print (self.para_1,self)
     return self.para_1
obj = test()
obj.para_1 = 'haha'
print (obj.func_1())
print (obj.func_2())
print (obj.func_3())

在这里插入图片描述

内部结构图

在这里插入图片描述

将类test实例化成对象obj,然后在对象obj中定义一个变量对应的值:obj.para_1=‘haha’。

方法中的self,就是指实例化的对象obj,通过self.para_1,就是调用obj这个对象中的para_1参数的值

1.3 面对对象之常用封装方法
class test:
    def __init__(self, a): # 使用__init__方法,进行变量初始化
        self.para_1 = 'liuyifei' # 初始化一个对象中的变量para_1,并赋值'liuyifei'
        self.para_2 = a # 初始化对象中的变量para_2并将实例化后的对象传递进来的参数赋值给para_2

    def func_1(self):
        return self.para_1, self.para_2

    def func_2(self):
        return self.para_1, self.para_2

    def func_3(self):
        return self.para_1, self.para_2

obj = test('biubiubiu') # 实例化一个类,形成一个对象obj,并将值biubiubiu传递给__init__中的形参a
print (obj.func_1())
print (obj.func_2())
print (obj.func_3())


obj_temp = test('1111111')
print (obj_temp.func_1())
print (obj_temp.func_2())
print (obj_temp.func_3())

在这里插入图片描述

这里a形参

在这里插入图片描述

发布了134 篇原创文章 · 获赞 16 · 访问量 6340

猜你喜欢

转载自blog.csdn.net/weixin_46108954/article/details/104646377
今日推荐