虚拟开发环境
虚拟开发环境是指定的开发环境,该环境是物理环境的虚拟,内有复制的python和第三方库,开发时的虚拟环境在部署时也要安装相应版本的Python和第三方库。
创建
python安装时会自动创建一个virtualEnv,也可以安装第三方的workon;
创建方法:mkvirtualenv env_base2 – python=“路径” (指定python版本,会将其复制到env_base2环境中)
退出方法:deactivate
进入方法:workon env_base2
部署
- 查看并导出第三方模块清单:
pip freeze > requirement.txt - 安装所需第三方模块:
pip install -r requirement.txt
类和对象
面向对象是一种软件开发方法,将项目分成不同对象,适合大型开发,其开发效率高,但运行效率不如面向过程。最难的是面向对象分析,七八千行一万行左右代码量才能有面向对象思维。
面向对象方法的概念主要有类和对象,类是一种抽象,有选择地忽略和抽取特征。类是一种模板,是一种自定义的数据类型,它不占内存;对象由类定义,是类的实例化,它占内存。
定义类
class GirlFriend:
# 构造方法用于初始化,赋一个对象初始值,self的调用属于魔术方法,由系统自动调用
def __init__(self,height,face,age):
# 定义对象属性
self.height = height
self.age = age
self.face = face
# 方法都有一个默认参数self,不用我们赋值
# 方法属于类,类外找不到方法
# 方法只通过对象来调用,函数则不然
def love(self):
# 一个方法调用另外一个方
self.cook()
# 引用属性
print(self.age)
print("人家会很疼人的")
def cook(self):
print("武汉热干面")
return self
实例化
# 实例化对象会自动调用构造函数
girl = GirlFriend(1.6,7,21)
调用属性和方法
# 调用对象属性
print(girl.age)
#调用对象方法
girl.cook() # cook(girl) 谁调用方法,self就是谁
# 如果一个方法返回了self,则可以连续下一个方法,连续调用
# 如cook()方法返回了self,girl.cook().love()相当于girl.cook()后再执行girl.love()
# res = girl.cook()
# res.love()
girl.cook().love()
函数和方法的异同:
- 相同:两者语法基本一样
- 相异:
- 方法参数带有self,函数不带self参数
- 函数是独立的,方法属于其类,类的外部不能调用
- 函数与方法属于不同命名空间,可以重名
- 函数可以直接调用,但方法只能通过类或对象调用
- 如果一个方法返回self,则可以连续执行下一个方法
- 类内的方法调用另一个方法以self代表该对象:self.cook()