面向对象编程
类
#面向对象的开发语言
#一切皆对象。
#面向过程
#面向对象
面向对象它是包含面向过程的
#类
一类东西,一个模型
#实例
通过这个模型造出来的东西
#对象 #实例
#实例化
就是造实例的过程
#面向的对象的特性
#封装
就是把零散代码封装成一个函数,或者封装成一个类
#继承
就是父类有的东西,你也有。
#多态
#一种方法多种实现。
#属性
就是类里面的变量
#方法
就是类里面有什么功能,其实就是类里面的函数
#构造函数
初始化这个对象,你想让他给你传哪些东西
他会在这个类实例化的时候自动执行。
#析构函数
它是在这个实例被销毁的时候自动执行的。
#类里面的函数如果有多次调用,而且还要获取到他的返回值,那就用return
如果这个变量就用了一次,那么就用self
#类变量
存在类里面的,一般一些公共的东西,不会变的,用类变量
#实例变量
实例化的时候才创建的变量。
#类方法
通过类名可以直接调用,不需要实例化
@classmethod
def fuc(cls):
pass
#静态方法
就是写在类里面的一个普通函数而已。
@staticmethod
def myFunc():
pass
#实例方法
必须实例化之后才可以调用的方法
类里面的函数,如果第一个参数是self,那么就是一个实例方法
#属性方法
把一个方法变成一个变量
@property
def add(self):
return 18
属性方法也是一个实例方法,需要实例化才能使用。
属性方法同样可以通过实例方法实现
如果你使用属性方法的话,那么必须得有返回值,而且不能有入参。
#继承
#多态
#私有
私有属性、变量
私有方法、函数
方法或者变量,在前面加上__,(两个下划线),它就是一个私有方法/私有变量
私有方法或者变量在类里面随便用,出了类就不好使。
怎么发邮件
编码规范:
命名规范
strToDict #如果有多个单词的话,每个单词首字母都大写
如果是类名的话,首字母要大写
str_to_dict#多个单词用下划线连起来也行
self:相当于把构建对象的参数存到类内存里面,self.xxx=xxx 把参数保存到这个类内存中,下面能够直接使用
import requests,flask
class Api(object):#object对象,新式类
sx=['属性']#类属性,类变量
def __init__(self,url,data={},cookies={},headers={},files={},methods=''):#初始化函数;实例化直接运行代码
self.url = url
self.data =data
self.cookies = cookies
self.headers =headers
self.files = files
self.methods=methods
def get(self):#方法
self.res = requests.get(self.url,self.data,cookies=self.cookies,headers = self.headers,files = self.files)
self.res1 = self.res.text#获取返回报文
self.res2 = self.res.status_code#获取http状态码
self.res3 = self.res.cookies#获取cookies
self.res4 = self.res.headers#获取headers
return self.res1,self.res2,self.res3,self.res4
def post(self):
self.r = requests.post('http://127.0.0.1:8000/login1',json=self.data,cookies = self.cookies)
self.r1 = self.r.json()#获取返回报文
self.r2 = self.r.status_code#获取http状态码
self.r3 = self.r.cookies#获取cookies
self.r4 = self.r.headers#获取headers
return self.r1,self.r2,self.r3,self.r4
my_api=Api('http://127.0.0.1:8000/login',{"n":'jmy',"p":'123'},cookies={"cookie":"wo shi cookie"},methods='post')#构建对象,实例化过程
print(my_api.post())#调用类方法