面向对象补充之方法

一、静态方法 @staticemethod  
只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性。
实例:
class Dog(object):
    '''这个类是描述狗这个对象的'''

    def __init__(self,name):
        self.name = name

    @staticmethod #实际上跟类没什么关系了,只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性
    def eat(self):
        print("%s is eating %s" %(self.name,'d'))

  
d=Dog('doggie')
d.eat()

  返回:

在类的动态方法前面加上了“@staticmethod”之后,这个动态方法就已经和类没有什么关系,self不会自动传入。

 

二、类方法 @classmethod  
只能访问类变量,不能访问实例变量
实例:
class Dog(object):
    '''这个类是描述狗这个对象的'''
    n='我不是实例变量'

    def __init__(self,name):
        self.name = name

    @classmethod  #只能访问类变量,不能访问实例变量
    def p(self):
        print('我是类变量,%s'%self.n)   #注意,此处只能调用类变量,传入的变量一定要写成self.var的格式。

    def eat(self):
        print('%s is eating...'%self.name)



d=Dog('doggie')
d.eat()
d.p()    #没有被@classmethod的方法可以正常调用实例变量。

  返回:

如果上面实例中的d.eat()也被“@classmethod”方法,那么则会返回下面的错误:

 




三、属性方法 @property
把一个方法变成一个静态属性 
class Dog(object):
    '''这个类是描述狗这个对象的'''

    def __init__(self,name):
        self.name = name

    @property
    def eat(self):
        print('%s is eating...'%self.name)

d=Dog('doggie')
d.eat  

  返回:

注意:由于“@property”方法已经把d.eat方法变成了一个静态属性,如果没有“@property”方法,执行d.eat,不会调用执行d.eat方法;但由于“@property”将d.eat方法转变为一个静态属性,则不能通过d.eat()调用,会返回“TypeError: 'NoneType' object is not callable”。

如果被装饰的方法中不需要传入参数,则可以通过d.eat执行。

 

如果需要传入参数,则可以通过@setter的方式给静态属性传入指定参数:

class Dog(object):
    '''这个类是描述狗这个对象的'''

    def __init__(self,name):
        self.name = name
        self.__food=None

    @property
    def eat(self):
        print('%s is eating %s'%(self.name,self.__food))

    @eat.setter
    def eat(self,food):
        print('将food传入静态方法eat中的self.__food中去',food)
        self.__food=food

d=Dog('doggie')
d.eat
d.eat='包子'
d.eat

  返回:

 

 

删除属性的方法:

删除实例的方法是

del 指定方法

  但是,如果直接执行 del d.eat会报错“AttributeError:can't delete attribute”,属性是不能用del删除的。

下面是删除属性的方法:

class Dog(object):
    '''这个类是描述狗这个对象的'''

    def __init__(self,name):
        self.name = name
        self.__food=None

    @property
    def eat(self):
        print('%s is eating %s'%(self.name,self.__food))

    @eat.setter
    def eat(self,food):
        print('将food传入静态方法eat中的self.__food中去',food)
        self.__food=food

    @eat.deleter
    def eat(self):
        del self.__food
        print('成功删除执行的私有属性')

d=Dog('doggie')
d.eat
d.eat='包子'
d.eat
del d.eat
d.eat

  返回:

成功执行del d.eat(包含这条)以上的所有命令,但是在删除属性self.__food后,没有了self.__food属性,报错

转载于:https://www.cnblogs.com/zoe233/p/7156926.html

多角色体系 支持管理员、商家、消费者三种角色,权限分级管控: 管理员:负责平台整体配置、用户审核、数据监控等全局操作。 商家:管理店铺信息、发布商品、处理订单、回复评价等。 消费者:浏览商品、加入购物车、下单支付、评价商品等。 实现用户注册(手机号 / 邮箱验证)、登录(支持密码 / 验证码 / 第三方登录)、个人信息管理(头像、收货地址、密码修改)。 权限精细化控制 商家仅能管理自家店铺及商品,消费者仅能查看和购买商品,管理员拥有全平台数据访问权限。 二、商品管理功能 商品信息维护 商家可发布商品:填写名称、分类(如服饰、电子产品)、子类别(如手机、笔记本)、规格(尺寸、颜色、型号)、价格、库存、详情描述(图文)、物流信息(运费、发货地)等。 支持商品上下架、库存调整、信息编辑,系统自动记录商品状态变更日志。 商品分类与搜索 按多级分类展示商品(如 “数码产品→手机→智能手机”),支持自定义分类体系。 提供智能搜索功能:按关键词(名称、品牌)搜索,支持模糊匹配和搜索联想;结合用户浏览历史对搜索结果排序(优先展示高相关度商品)。 商品推荐 基于用户浏览、收藏、购买记录,推荐相似商品(如 “浏览过该商品的用户还买了…”)。 首页展示热门商品(销量 TOP10)、新品上架、限时折扣等推荐列表。 三、订单与交易管理 购物车与下单 消费者可将商品加入购物车,支持修改数量、选择规格、移除商品,系统自动计算总价(含运费、折扣)。 下单流程:确认收货地址→选择支付方式(在线支付、货到付款)→提交订单→系统生成唯一订单号。 订单处理流程 订单状态跟踪:待支付→已支付→商家发货→物流运输→消费者收货→订单完成,各状态变更实时通知用户。 商家端功能:查看新订单提醒、确认发货(填写物流单号)、处理退款申请(需审核理由)。 消费者端功能:查看订单详情、追踪物流、申请退款 / 退货、确认收货。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值