Python 面向对象

 

类大致分为两块区域:

class A:
    name = "测试者"          第一部分:静态属性
    def __init__(slef):         第二部分:方法部分
          pass
    def func(self):
          pass

细分的化分为

class A:
    name = "123"    #静态字段
    __age = 12      #私有静态字段
    def __init(self,sex,monery):
        self.__sex = sex      #私有对象属性
        self.monery = monery    #对象属性
    def func(self):pass        #普通方法
    def _func(self): pass      #私有方法
    @classmethod
    def func2(cls):pass        #类方法
    @staticmethod
    def func3():pass            #静态方法
    @property
    def save_monery(self):      #属性
        return "数值"

   

私有静态字段

  • 不能在本类的外部进行访问,派生类均不可访问
  • 只能在本类的内部可以访问

私有方法:

  • 不能在本类的外部进行访问,派生类也不可访问父类的私有方法
  • 只能在本类的内部可以访问  

私有属性:

  • 只有在类的内部可以访问

                               注意:私有方法和私有变量其实都是可以访问,(不过不推荐)

                                          __私有变量 == _类名__私有变量
                                          __私有方法 == _类名__私有方法

类方法:

@classmethod
类方法(参数为类本身)
类方法的应用场景
1,类中有些方法是不需要对象参与
2,对类中的静态变量进行改变
3,继承中,父类得到子类的类空间        #哪一个类调用就是哪一个类的空间

静态方法:

@staticmethod
静态方法(无参):
1.代码块,清晰
2.复用性

静态方法虽然不依赖于对象,类,但是为了保持代码的整体性和一致性
才将其设置为静态方法,而不放在类的外面当普通函数

 

@property
属性
方法名 上方加上 @property
会使调用方式发生该变   由原先的方法名加括号,变成属性名
代码上没有实质性的改变,只是让原来的方法调用看起来像属性
@property
def 伪装像属性的方法名(self):
    return self.__属性


伪装属性的修改                    #对伪装属性进行修改就会触发以下方法
                                如: 伪装属性 = 新值
@伪装的方法名 点 setter
def 伪装的方法名(self,修改后的值):

@伪装的方法名 点 deleter        #del 伪装属性   会执行该方法
def 伪装的方法名(self):

例如:

class Goods:
    
    discount = 0.9            #折扣
    
    def __init(self,name,old_monery):
        self.name = name                      #名字
        self.__old_monery = old_monery        #商品原价

    @property
    def price(self):
        new_price = self.__old_monery * self.discount
        return new_price                    #此处必须返回一个数值型数据

    @price.setter                # 被装饰方法名 点 setter
    def price(self,value):
        self.__old_monery = value / self.discount         #将商品原价修改了,目的是让new_price 等于 value

    @price.deltter                # 被装饰方法名 点 deltter
    def price(self,value):
        del self.__old_monery    #删除原商品价格属性

g = Goods("苹果",5)
g.price           #获得商品的折扣价格    执行的其实是 price(self)  方法
g.price = 10      #修改商品折扣后的价格   执行的其实是 @price.setter 的方法
del g.price       #删除商品价格          执行的其实是 @price.deltter 的方法

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值