1. 鸭子类型
“鸭子测试”:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”
Python是一门动态语言,动态语言与静态语言的最大区别便是动态语言是在运行时确定数据类型的语言(python,JavaScript),变量使用之前不需要类型声明。
核心思想:在鸭子类型中,关注点在于对象的行为,能作什么;而不是关注对象所属的类型。
1.1 实例1
在运行之前 Student、Teacher、Worker都是在列表里面,当作变量;
当运行时,加上(),调用speak() 才明确Student、Teacher、Worker是一个类。
class Student(object): #定义一个Student类
def __init__(self,name):
self._name = name
print('My name is:%s'%self._name)
def speak(self):
print('I am a student')
class Teacher(object): #定义一个Teacher类
def __init__(self,name):
self._name = name
print('My name is:',self._name)
def speak(self):
print('I am a teacher'