1)Python语言特性?

Python是静态还是动态类型?是强类型还是弱类型?

        Python是动态强类型语言(不少人误以为是弱类型)

动态还是静态指的是编译期还是运行期确定类型

强类型指的是不会发生隐式类型转换(PHP和Javascript就是弱类型语言)

2)为什么要用Python?

胶水语言,轮子多,应用广泛(优点)

语言灵活,生产力高(优点)

性能问题、代码维护问题、python2/python3兼容问题(缺点)

3)什么是鸭子类型?

“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以称为鸭子”

关注点在对象的行为,而不是类型(duck typing)

比如file,String,scoket对象都支持read/write方法(file like object)

再比如定义了__iter__魔术方法的对象都可以for迭代

(鸭子类型更关注接口的方法,而非类型)

class Duck:def quack(self):print("gua gua")class Person:def quack(self):print("我是人类, 但我也会 gua gua gua")def in_the_forest(duck):duck.quack()def game():donald = Duck()john = Person()in_the_forest(donald)in_the_forest(john)# 输出类型print(type(donald))print(type(john))# 判断类型print(isinstance(donald, Duck))print(isinstance(john, Person))game()

输出结果:

gua gua

我是人类, 但我也会 gua gua gua

<class '__main__.Duck'>

<class '__main__.Person'>

True

True

Python语言特性和优缺点及什么是鸭子类型?相关推荐

  1. # Python3 面试试题--Python语言特性

    Python语言特性 1 Python的函数参数传递 看两个例子: a = 1 def fun(a):a = 2 fun(a) print(a) # 1 a = [] def fun(a):a.app ...

  2. python做自动化测试的优点_乐搏讲自动化测试-python语言特点及优缺点(5)

    相信小伙伴们都知道,随着软件测试行业的发展和进步自动化测试已经成为必然.在竞争日益激烈的市场环境中也是你升职加薪的利器. 所以,小编决定从今天起!将要系统.连续.高质量的持续更新「整套自动化测试」文章 ...

  3. python语言特性-------python2.7教程学习【廖雪峰版】(一)

    开始学习廖雪峰的py2.7教程: 2017年6月5日12:54:28 笔记: 廖雪峰python2.7教程 1.用任何编程语言来开发程序,都是为了让计算机干活.  2.Python是一种相当高级的语言 ...

  4. 关于python语言的变量随时_Python中变量的类型是动态的,随时可以变化

    Python中变量的类型是动态的,随时可以变化 答:√ 下列关于普通用户实现任务计划的描述,错误的是:(? ?) 答:普通用户可通过修改/etc/crontab文件制定任务计划 下列哪些属于人民战争的 ...

  5. python 语言教程(3)变量之数字类型

    1. 支持四种不同的数字类型 int(有符号整型) long(长整型,也可以代表八进制和十六进制) float(浮点型) complex(复数) 1.1 实例 一些数值类型的实例 int long f ...

  6. python语言的变量特点随时_python程序设计——基本语言特性

    参考<Python程序设计(第2版)> 清华大学出版社 董付国 ##### 除特殊说明外,以下代码示例,均为python 3.6版本 ##### 一.Python语言特性 1.python ...

  7. AI算法工程师 | 02人工智能基础-Python基础(二)语言特性_控制语句_切片_数据类型

    文章目录 Python基础语法 一.Python语言特性 使用Jupyter Notebook Python是强类型的动态脚本语言 Python中一切皆对象 二.流程控制语句 条件判断语句 循环语句 ...

  8. 动态语言的灵活性是把双刃剑 -- 以Python语言为例

    本文有些零碎,总题来说,包括两个问题: (1)可变对象(最常见的是list dict)被意外修改的问题, (2)对参数(parameter)的检查问题. 这两个问题,本质都是因为动态语言(动态类型语言 ...

  9. Python高级特性:切片、迭代、列表生成式、生成器与迭代器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 接着廖雪峰老师的学习教程,小编要开始加快推进Python的学习进程 ...

最新文章

  1. Dubbo-Admin 功能展示与实操解析
  2. ROS:使用ubuntuKylin17.04安装ROS赤xi龟
  3. npm install Saving to file: /root/.jenkins/workspace/ems-web/node_modules/chromedriver/2
  4. oracle创建job权限
  5. 如何使ArcIMS图例显示中文
  6. goland设置goroot_goland安装
  7. Windows动态桌面原理
  8. Delphi官方网站资源
  9. Smobiler 仿得到APP个人主页
  10. 苹果关掉200m限制_苹果怎么取消200m限制
  11. 六、Python文件操作
  12. Matlab代码区出现中文乱码的情况
  13. 流氓软件“实名制” 午夜影院乔装正规军
  14. 动态规划——钢条切割
  15. 有贵人相助顶你三年兢兢业业---养浩有感
  16. JAVA练习 家庭记账本
  17. python编写的函数调用说法正确的是_python逻辑题(以下10道选择题有唯一答案,请编写自定义函数judge遍历答案列表并汇报正确答案)...
  18. elementplus 上传文件
  19. 响应服务器554 5.7.1,554 5.7.1:中继访问被拒绝的centos后缀
  20. AutoAugment介绍及论文解析

热门文章

  1. apache-maven-3.8.5配置
  2. [BJDCTF 2nd]燕言燕语-y1ng解析
  3. 北京市工作居住证官方网站js报错不能使用解决办法
  4. 北京市工作居住证只有电子版没有纸质版
  5. 左右滑动日历(微信小程序)
  6. 7-1 验证哥德巴赫猜想
  7. 【李佳辉_周报_2022.9.11】
  8. linux 内核printk 打印信息查询方法
  9. python 爬手机号_python手机号前7位归属地爬虫代码实例
  10. 手机端滑动banner代码