python开发跟淘宝有关联微_Python基础讲义第二弹面向对象编程(淘宝平台模拟为例)...

前言

本文为了深入了解python面向对象的用法, 这里准备了一个淘宝平台的例子

版本1.0

版本1 主要是完成一条完整的订单链模拟, 其他与完整订单链无关的信息不考察在内。

所需背景

1,了解淘宝规则(rule.taobao.com/index.html)

2, 了解基本面向对象的原理和特性.

3, 了解基本逻辑行为.

淘宝用户的相关关系说明

关于淘宝的用户关系, 用下面的一张图描述。 所有的可以在平台上戏耍的都是用户, 游客是非会员用户, 用户是注册买东西的用户, 卖家是卖东西的用户, 最后是平台管理者用户。

SouthEast

用到的知识内容

一、 oop编程三大特性的运用

二、 常见的逻辑处理方法

实例实现和解释

版本1过程说明

在这个过程中 : 一个用户有了浏览行为后进行购买 –>买家付款并下单–> 卖家发货 —> 到买家收到货物确认收货 –>双方互评 —>交易完成。

PS: 省略掉其中不是一条完整订单的行为, 取整个交易过程种,后台的动态链为例,进行模拟说明。在整个过程种尽量对各个对象都模拟出相应的行为。

另外考察买家和买家作用的对象是商品:

增加商品对象(表列)

商品ID, 出售价格。商品参数(product parameters)

'''商品类, 就只有商品ID, 商家, 价格'''

from enum import Enum, unique

@unique

class Goods(Enum): ##商品id\ 卖家对象\ 价格\

good1 = ['093', 'seller1', 397]

good2 = ['116' 'seller1', 597]

good3 = ['081' 'seller1', 299]

good4 = ['116', 'seller1', 198]

'''用户属性类, 参数列表可变'''

class UserInfo():

__slots__ = ('id', 'name', 'adress', 'wallet') # 用tuple定义允许绑定的属性名称

'''用户类'''

class User(object):

__slots__ = ('id', 'info') # 这里的info可以用UserInfo重建和代替,表格联立

def __init__(self, id = None, info = None):

self.id = id;

self.info = info

def setInfo(self, id):#根据用户信息读取信息

info1 = UserInfo()

if(self.id == '001'):

info1.name = 'buyer1'

info1.adress = 'Hubei'

info1.wallet = 10000

else:

if(self.id == '002'):

info1.name = 'null'

info1.adress = 'HeNan'

info1.wallet = 10000

else:

return None

return info1

def scan(self, Goods, time):

self.info = [Goods, self.id, time]

'''游客类对象'''

class Tourist(User):

pass

'''买家类'''

class Buyer(User):

def set_DingDan(self, good1, cout):#订单是由买家生成的 //商品, 购买数量, 传递进来sku—>goodi

print("买家已经拍下")

## DingDan = {'goodsID':Goods.good1.value[0],'mny': cout*(Goods.good1.value[2])}

DingDan = [Goods.good1.value[0],cout*(Goods.good1.value[2])]

self.DingDan = DingDan

def buy(self):

self.info.wallet = self.info.wallet - self.DingDan[1]

if(1): ##这里可以设置一个全局变量生成

print ("生成订单号 xx00100255fdx")

def endDingDan(self):

print("买家确认收货并完成订单")

'''卖家类'''

class Seller(User):

def setGoods(id): ##创建商品

print ('seller1 的 4个sku已经创建完毕')

def sentGoods(self, goods, buyID):

print ('卖家已经发货')

def getMoney(self, mnt):

self.info.wallet = self.info.wallet +mnt

class admin(User):

pass

mnt = 0

DingDan = None

##主函数模拟

s1 = Seller()

s1.id = '002'

s1.info = s1.setInfo(s1.id)

s1.setGoods()

b1 = Buyer()

b1.id = '001'

b1.info = b1.setInfo(b1.id)

b1.set_DingDan(Goods.good1, 2)

mnt = b1.DingDan[1]

s1.sentGoods(Goods.good1, b1.id)

b1.buy() ##付完款

s1.getMoney(mnt)

b1.endDingDan()

很多地方可以优化, 应用一些数据结构对对象进行存储, 同样可以利用mataclass 对相应的表格复写类模块进行一类一表的表达, 这里就不加赘述了, 有兴趣的可以深究下。

版本2.0

引入更多的规则来模拟, 后台对用户的特征行为操作等进行记录。

例如用户进行浏览收藏加够, 加够的商品数, 商品对象(new Class & new SQL)的特征, 店铺是否有优惠, 加入时间因素, 在各个时间段买家的操作平台进行记录和后期复盘。

版本3.0

关键词搜索模拟: 许多用户,通过对应的搜索词进入到对应的URl列表店铺,防真移动端搜索的例子。

版本4.0

直通车决策自动化工具实现

通过直通车模拟得到的规则,直通车操作者进行决策得到最佳的决策方法。

后记

这是个OOP编程较为完整的例子, 剩下的一些版本将会在闲下来的时间里面慢慢完成, 至于版本5 完全实现一个直通车工具, 版本6 提供一个界面化的分析工具也不是不可能, 可以收藏下这篇文章, 在以后会慢慢更新上来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值