zoukankan      html  css  js  c++  java
  • 面向对象-鸭子类型

    Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’

    python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象

    也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。

    例1:利用标准库中定义的各种‘与文件类似’的对象,尽管这些对象的工作方式像文件,但他们没有继承内置文件对象的方法

    class File:
        def read(self):
            pass
    
        def write(self):
            pass
    
    
    class Disk:
        def read(self):
            print('disk read')
    
        def write(self):
            print('disk write')
    
    class Text:
        def read(self):
            print('text read')
        def write(self):
            print('text write')
    
    disk=Disk()
    text=Text()
    
    disk.read()
    disk.write()
    
    text.read()
    text.write()
    
    
    #序列类型:列表list,元组tuple,字符串str
    
    l = list([1, 2, 3])
    t=tuple(('a','b'))
    s=str('hello')
    
    print(l.__len__())
    print(t.__len__())
    print(s.__len__())
    
    def len(obj):
        return obj.__len__()
    
    print(len(l))
    print(len(t))
    print(len(s))
  • 相关阅读:
    常见的单链表题目
    一个string类的几个函数
    strcpy和memcpy的区别
    字符串及 strcpy几种写法
    什么函数不能声明为虚函数
    STL中Vector和List的底层数据结构
    C/C++堆、栈及静态数据区详解
    tcp四次握手
    几个知识点
    内存对齐的规则与作用
  • 原文地址:https://www.cnblogs.com/hexiaorui123/p/10201417.html
Copyright © 2011-2022 走看看