面向对象 vs 面向过程

mac2022-06-30  98

面向过程编程 (执行者)   1、4S店 掏钱买车   2、保险公司 上保险   3、税务局 交购置税   4、交管局 验车、选号、交钱、取牌、上牌

面向对象 (指挥者)   买车办事处     1、4S店 掏钱买车     2、保险公司 上保险     3、税务局 交购置税     4、交管局 验车、选号、交钱、取牌、上牌

 

举例:加密规则

方法一、面向过程

from urllib import parse

import hashlib

def get_vendorid(req_data):   data_dict = {}   sub_list = req_data.split('&')   #【vendorId=1697,poscode=xxx】   for i in sub_list:     # verid=1697     k,v = i.split('=')     #[verid,1697]     # data_dict.setdefault(k,v)     data_dict[k]=v   return data_dict.get('vendorId')

def sign(req_data):   verid = get_vendorid(req_data)    #调用获取veriodid函数   first = my_md5(verid)   astr = my_md5(first)  #两次md5   url_str = parse.quote_plus(req_data) #url编码   res = my_md5(astr+url_str)   return res

def my_md5(s):   md = hashlib.md5()   md.update(s.encode())   return md.hexdigest()

s = 'vendorId=1697&posCode=pos006&ip=127.0.0.1&posVersion=2.1.1.1.1&mac=;D4-81-D7-CA-20-29;7C-67-A2-9A-06-05;7C-67-A2-9A-06-06;7C-67-A2-9A-06-09;00-00-00-00-00-0000E0'# print(sign(s))

***********************************************************************************

方法二、面向对象

from urllib import parseimport hashlib

class Sign(object):   def __init__(self,req_data):     self.req_data = req_data #这写了self的话,在其他的函数里面也可以用self.xx     self.get_verid()     self.get_sign()     def md5(self,s):     md = hashlib.md5()     md.update(s.encode())     return md.hexdigest()

  def get_verid(self):     data_dict = {}     sub_list = self.req_data.split('&')     for i in sub_list:       k, v = i.split('=')       data_dict[k] = v     self.verid = data_dict.get('vendorId')   def get_sign(self):     frist = self.md5(self.verid)     astr = self.md5(frist)     url_str = parse.quote_plus(self.req_data)     self.sign = self.md5(astr+url_str)     return self.sign

s = 'vendorId=1697&posCode=pos006&ip=127.0.0.1&posVersion=2.1.1.1.1&mac=;D4-81-D7-CA-20-29;7C-67-A2-9A-06-05;7C-67-A2-9A-06-06;7C-67-A2-9A-06-09;00-00-00-00-00-0000E0'

sign = Sign(s)

print(sign.sign)

 

转载于:https://www.cnblogs.com/lynn-chen/p/9088419.html

最新回复(0)