面向对象编程
面向对象是一种思想,是包含面向过程的,例如:我们去买车:
- 第一步: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 函数
——简单的功能,写函数
——复杂的功能,考虑使用类,如:
-
一键部署环境
-
共有10多个工程
-
从Git上拉最新的代码
-
替换配置文件
-
执行编译命令
-
删除原来的旧代码
-
重启工程
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代码链接查找: