Python第二次高级培训笔记

一:动态得给类添加属性和方法

下面是我自己写的代码:

from  types import MethodType       #动态的给类添加属性和方法并使用
class cat(object):                  #定义一个空类cat类,里边没有属性和方法
    pass

c=cat()
                                     #动态添加属性,这体现了动态语言灵活的特点
c.name="Tom"
print(c.name)
                                     #动态添加方法
def run(self):
    print("我是一只会跑的"+self.name)

c.r=MethodType(run,c)                #给对象添加一个属性时也可按照这种方法
c.r()
另外,也可以限制给类添加的属性,我们可以在定义类的时候定义一个特殊的属性(__slots__),可以限制动态的添加属性

二 @property:可以让我们对受限制的变量使用点语法三

class person(object):

        def __init__(self,age)

self.age=age

per=person(18)

这样写,有缺点,也可以给age赋一个负值,不符合生活实际,这时候我们可以使用限制访问,自己写set和get方法才能访问,可以改为:

class person(object):

def __init__(self,age)

             self.__age=age

def getAge(self):

  return   self.__age

def   setAge(self,age)

       if  age<0:

              age=0

       self.__age=age

per.setAge(15)

print(per.getAge())

这样写的缺点是不够简洁,下面换一种写法

class person(object):

def __init__(self,age)

             self.__age=age

@property

 def age(self):

         return  self.__age

@age.setter

def   age(self,age)

       if  age<0:

              age=0

       self.__age=age

 per.age(100)

print(per.age)

三 运算符重载

运算符重载:
        什么是运算符重载
            让自定义的类生成的对象(实例)能够使用运算符进行操作
        作用:
            让自定义的实例像内建对象一样进行运算符操作
            让程序简洁易读
            对自定义对象将运算符赋予新的规则
        算术运算符的重载:
            方法名                  运算符和表达式      说明
            __add__(self,rhs)        self + rhs        加法
            __sub__(self,rhs)        self - rhs         减法
            __mul__(self,rhs)        self * rhs         乘法
            __truediv__(self,rhs)   self / rhs          除法
            __floordiv__(self,rhs)  self //rhs          地板除
            __mod__(self,rhs)       self % rhs       取模(求余)
            __pow__(self,rhs)       self **rhs         幂运算

运算符重载原文链接:https://blog.csdn.net/zhangshuaijun123/article/details/82149056

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值