python03

静态方法和类方法

       我们在类中定义的方法都是对象方法,也就是说这些方法都是发送给对象的消息。实际上,我们写在类中的方法并不需要都是对象方法,例如我们定义一个“正方形”类,判断四条边是否能构成正方形,如果是则计算面积。这个方法很显然就不是对象方法,因为在调用这个方法时正方形对象尚未创建出来(因为都不知道四条边能不能构成正方形),所以这个方法是属于正方形类而并不属于正方形对象的。我们可以使用静态方法来解决这类问题,代码如下所示。

       """
       如果类中需要非该类成员存在,则可以使用静态调用的方法@staticmethod
       """


 

类之间的关系

        类和类之间的关系有三种:is-a、has-a和use-a关系

               1.is-a关系也叫继承或泛化

               2.has-a关系通常称之为关联

               3.use-a关系通常称之为依赖


 继承和多态

        刚才我们提到了,可以在已有类的基础上创建新类,这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来,从而减少重复代码的编写。提供继承信息的我们称之为父类,也叫超类或基类;得到继承信息的我们称之为子类,也叫派生类或衍生类。子类除了继承父类提供的属性和方法,还可以定义自己特有的属性和方法,所以子类比父类拥有的更多的能力,在实际开发中,我们经常会用子类对象去替换掉一个父类对象,这是面向对象编程中一个常见的行为,对应的原则称之为里氏替换原则

 

         创建一个父类创建一个子类,父类计算两个数字的和记为SUM;子类自己还有一个参数,子类打印这个SUM

         **私有变量不可以继承**

                     


 列表生成式

         列表生成式

                优点:计算速度快,因为一次性已经全部加载到内存中了,适合数据量不是太大的情况
                缺点:占用内存

        打印1-100

 

         打印1-100中的偶数部分

 

         生成器

                优点:节约内存空间

                缺点:计算速度慢,因为要生成


装饰器

        我们讨论过Python中属性和方法访问权限的问题,虽然我们不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的,比如我们没有办法检查赋给属性的值是否有效。我们之前的建议是将属性命名以单下划线开头,通过这种方式来暗示属性是受保护的,不建议外界直接访问,那么如果想访问属性可以通过属性的getter(访问器)和setter(修改器)方法进行对应的操作。如果要做到这点,就可以考虑使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便。

            1)装饰器名,函数名需要一致

            2)priperty需要先声明,再写setter,顺序不能倒过来。

            3)如果你希望一点变量只是被访问不能被修改,那么可以使用访问器@property

            4)如果要修改访问器中的变量,可以搭建一个修改器或者删除访问器

 

         创建一个装饰器,3个函数(两个参数),装饰器处理这两个参数的和,并打印每一个函数,打印这两个数字

 

 

         输入三个数字(私有),求三个数字的和;尝试更改其中两个数字

 

转载于:https://www.cnblogs.com/zoucunna/p/11323621.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值