说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 是一种支持鸭子类型(Duck Typing)的动态类型语言,这意味着 Python 不依赖于明确的类型定义,而是根据对象的行为来确定其类型。
Python中的"鸭子类型"(duck typing)是动态类型的一种风格。关注对象的行为,而不是类型。其核心思想可以概括为:"当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。"也就是说,在鸭子类型中,我们不关心对象的类型本身,而关心它是否具有执行某个操作所需要的方法和属性。
Python 生态中常见的鸭子类型有:
鸭子类型的一些特点:
更多介绍:鸭子类型 。
举个例子:
class Duck:
def walk(self):
print("walk like duck")
class Dog:
def walk(self):
print("walk like dog")
def walk_test(animal):
animal.walk()
d = Duck()
walk_test(d) # walk like duck
d2 = Dog()
walk_test(d2) # walk like dog
只要对象有 walk() 方法,不管它的类型,都可以传入walk_test(),这就是鸭子类型。鸭子类型使得Python代码更加灵活多变,不必拘泥于复杂的类继承关系,开发效率更高。这是Python 动态语言的优势之一。
比如 + Python操作符,如果我们把它和两个整数一起使用,那么结果将是两个数字的和。
a = 10+15
a
# 25
现在让我们考虑具有字符串对象类型的相同运算符。结果将是将两个对象连接在一起。
a = 'A' + 'B'
a
# 'AB'
这种多态行为是Python的核心思想,Python也是一种动态类型语言。这意味着它在运行时执行类型检查,而不是在编译时执行它的静态类型语言(如Java)。
Duck-Typeing 是一种用于动态语言的类型系统。例如,Python、Perl、Ruby、PHP、Javascript等,其中对象的类型或类不如它定义的方法重要。使用鸭子类型,我们根本不检查类型。相反,我们检查是否存在给定的方法或属性。
更新时间:2023-09-17 15:54:04 标签:python 鸭子类型