每天努力一点点,坚持下去 ------ 博客首页

面向对象-class(类)

面向对象编程

 面向对象是一种思想,是包含面向过程的,例如:我们去买车:

  • 第一步:A地方 4s店 --> 买车
  • 第二步:B地方 保险公司 --> 上保险
  • 第三步:C地方 地税局 --> 交税
  • 第四步:D地方 交管所 --> 上牌照

我们需要去到4个四个地方才可以把买车的整个流程走完,这样子属于是面向过程的,而面向对象编程是,我们有一个卖车处的地方,这里可以买车、上保险、交税、上牌照,到了这里只需要找到一个人给相对应的办理业务就可以了,这就是属于面向对象,属于是化零为整的过程。


 

类:一个模型、一个例子。(如一个造汽车的图纸)

实例/对象:通过模型造出的具体东西。(通过图纸造出来的汽车)

实例化:把模型变成实例的过程。(通过通过造汽车的过程)

class Car: #类:模型 【经典类】
#定义类一般习惯性大写字母开头,小写字母也可以
    def run(self):#
        print('run。。。')
    def fly(self):
        print('fly...')

bmw = Car() #实例化-第一个实例
bmw.run()
bmw.fly()

benz = Car()#实例化-第二个实例

#结果:
run。。。
fly...

 构造函数

——类在实例化的时候,会自动执行的函数。【 __init__】

 构造函数中,self .xxx = xxx,在别的函数中,就直接可以使用了,如下边的第二个函数 self.name。

class Person(object): #新式类,Python3中和经典类没有区别,Python2中有区别
    def __init__(self,name,sex,color): #构造函数
        self.name = name
        self.sex = sex
        self.color = color

    def cry(self):
        print('%s cry...'%self.name)

    def fly(self):
        print('%s fly...'%self.name)

    def eat(self):
        print('color',self.color)
        print('eat...')
brf = Person('brf','man','red')
brf.eat()
brf.cry()
brf.fly()

#结果
color red
eat...
brf cry...
brf fly...

 self : 本类对象

——self 就是实例化的变量,就是下边代码中的brf;原理分析:当我们在调用 cry()函数时,是需要传一个参数的,我们没有传参数,是因为在调用时,自动的语法转化了,把 brf  当作了参数,给到了self。

class Person:
    def cry(self):
        print('self的内存地址',id(self))

brf = Person()
brf.cry()
print('实例的内存地址',id(brf))

#结果
self的内存地址 1734936067184
实例的内存地址 1734936067184

 析构函数

     ——实例被销毁的时候自动执行的函数。

class Brf:
    def __del__(self): #析构函数
        print('__del__析构函数')

    def __init__(self):
        print('__init__ 构造函数')

    def fly(self):
        print('fly...')

b = Brf()
b.fly()

#结果:
__init__ 构造函数
fly...
__del__析构函数

 * 分析:因b是一个变量,当此次代码运行完了后,b就会被销毁,所以最后可以看到运行了析构函数。 

 私有

——不是公共的,只能在类里面的函数调用,在类外边不可以调用;创建后,不想要他人在外部操作了,可以使用私有

——把一个函数的变量名字前边加两个【下划线 __】,这个函数就是私有了

class Person(object): 
    def __init__(self,name,sex,color): 
        self.name = name
        self.sex = sex
        self.color = color

    def cry(self):
        print('%s cry...'%self.name)

    def fly(self):
        print('%s fly...'%self.name)

    def __eat(self): #私有
        print('color',self.color)
        print('eat...')
brf = Person('brf','man','red')
brf.eat()
brf.cry()
brf.fly()

类 or 函数

 ——简单的功能,写函数

——复杂的功能,考虑使用类,如:

  1. 一键部署环境

  2. 共有10多个工程

  3. 从Git上拉最新的代码

  4. 替换配置文件

  5. 执行编译命令

  6. 删除原来的旧代码

  7. 重启工程

import os

class Deploy:
    build_home = '/home/niuhy/projects'
    def __init__(self,project_name,branch)
        self.project_name =project_name
        self.branch = branch
    def pull_code(self)
        os.chdir(self.build_home)
        command = "git clone https://gitee.com/little_fat_grain/%s.git -b %s" %(self.project_name,self.self)
        os.system(command)
    def replace_config():
        pass
    def backup():
        pass
    def build():
        pass
    def start():
        pass
    def main():
        self.backup()
        self.pull_code()
        self.replace_config()
        self.build()
        self.start()

d = Deploy('besttest_job','my_python')
d.main() 

Git代码链接查找:

 

 

 

posted @ 2021-05-20 21:34  他还在坚持嘛  阅读(297)  评论(0编辑  收藏  举报