zoukankan      html  css  js  c++  java
  • 面向对象三大特性之多态、封装代码注释部分

    多态

    # 多态 python 天生支持多态
    # def func(int num,str name): #java当中,要传的参数是什么类型要定义好,且定义好之后只能接收定义好的数据类型
    # pass
    #
    # func('alex',2)
    # class Payment:pass

    # class Alipay():
    # def pay(self,money):
    # print('已经用支付宝支付了%s元' % money)
    #
    # class Applepay():
    # def pay(self,money):
    # print('已经用applepay支付了%s元' % money)
    #
    # def pay(pay_obj,money): # 统一支付入口 归一化设计
    # pay_obj.pay(money)
    #
    # pay()

    # 什么是多态
    # python 动态强类型的语言
    # 鸭子类型
    # list tuple
    # 不崇尚根据继承所得来的相似
    # 我只是自己实现我自己的代码就可以了。
    # 如果两个类刚好相似,并不产生父类的子类的兄弟关系,而是鸭子类型
    # list tuple 这种相似,是自己写代码的时候约束的,而不是通过父类约束的
    # 优点 : 松耦合 每个相似的类之间都没有影响
    # 缺点 : 太随意了,只能靠自觉

    # class List():
    # def __len__(self):pass
    # class Tuple():
    # def __len__(self):pass
    #
    # def len(obj):
    # return obj.__len__()
    #
    # l = Tuple()
    # len(l)
    #
    # # 强类型语言 多态
    # # python 语言 鸭子类型
    # 接口类和抽象类 在python当中的应用点并不是非常必要

    封装
    # 广义上面向对象的封装 :代码的保护,面向对象的思想本身就是一种
    # 只让自己的对象能调用自己类中的方法

    # 狭义上的封装 —— 面向对象的三大特性之一
    # 属性 和 方法都藏起来 不让你看见
    class Person:
    __key = 123 # 私有静态属性
    def __init__(self,name,passwd):
    self.name = name
    self.__passwd = passwd # 私有属性

    def __get_pwd(self): # 私有方法
    return self.__passwd #只要在类的内部使用私有属性,就会自动的带上_类名

    def login(self): # 正常的方法调用私有的方法
    self.__get_pwd()

    alex = Person('alex','alex3714')
    print(alex._Person__passwd) # _类名__属性名
    print(alex.get_pwd()) #正常调用不了了

    # 所有的私有 都是在变量的左边加上双下划綫
    # 对象的私有属性
    # 类中的私有方法
    # 类中的静态私有属性
    # 所有的私有的 都不能在类的外部使用



  • 相关阅读:
    hdu 2586 How far away ?
    zoj 3195 Design the city
    hust 1022 K-diff subsequence
    poj 2253 Frogger
    poj 1470 Closest Common Ancestors
    poj 2553 The Bottom of a Graph
    poj 1236 Network of Schools
    poj 3694 Network
    uva 10131 Is Bigger Smarter ? (简单dp 最长上升子序列变形 路径输出)
    2014年百度之星程序设计大赛
  • 原文地址:https://www.cnblogs.com/ddjl/p/8335996.html
Copyright © 2011-2022 走看看