首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    再谈python中的多态

    还引用上次的例子: [python] view plaincopy class A:     def prt(self):     print "A" class B(A):    ...def prt(self):     print "B" class C(A):     def prt(self):     print "C" class D(A...并不是A类型的变量但是根据鸭子类型,走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子,e有prt方法,所以在test方法中e就是一个A类型的变量,f没有prt方法,所以f不是A类型的变量...以上是从java的角度分析的,其实上边都是一派胡言,只是为了说明python中的运行方法。没有谁规定test方法是接收的参数是什么类型的。test方法只规定,接收一个参数,调用这个参数的prt方法。...在运行的时候如果这个参数有prt方法,python就执行,如果没有,python就报错,因为abcde都有prt方法,而f没有,所以得到了上边得结果,这就是python的运行方式。

    1.4K10

    八、python学习笔记-面向对象-类

    属性引用使用和 Python 中所有的属性引用一样的标准语法:obj.name。 类对象创建后,类命名空间中所有的命名都是有效属性名。...""" self代表类的实例,而非类 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self. """ class Test: def prt...__class__) t = Test() t.prt() """ 从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。...self 不是 python 关键字,我们把他换成 runoob 也是可以正常执行的: """ class Test: def prt(runoob): print(runoob...__class__) t = Test() t.prt() """类的方法 在类地内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self

    33731

    图解LeetCode——1656. 设计有序流(难度:简单)

    但此时还没有结束,prt执行加1操作指向下一个位置,如果这个位置上已经有元素了,那么继续作为结果返回且prt再次加1,直到prt指向的位置是空的,结束方法逻辑。...由于prt现在指向1的位置,而插入位置是3,所以,prt不做任何变动。...具体操作如下图所示: 然后,我们再插入[1, "aaaaa"],由于此时prt等于1,元素插入到了prt指向的位置,所以,根据题意,我们返回["aaaaa"],同时prt指向加1操作,即:指向了下标为...具体操作如下图所示: 接下来,我们继续插入[2, "bbbbb"],由于此时prt等于2,元素插入到了prt指向的位置,所以,根据题意,我们返回["bbbbb"],同时prt指向加1操作,但是我们发现...,prt指向的下标为3的位置上,已经存在元素“ccccc”了,所以,我们也将它一起作为返回值返回出去,此时prt再次执行加1操作,那么下标为4的位置上,元素是空的,所以,结束方法逻辑,**返回["bbbbb

    23221
    领券