Python函数声明以及与其他编程语言数据类型的比较
1、函数声明
与其它大多数语言一样 Python 有函数,但是它没有像 C++ 一样的独立的头文件;或者像 Pascal 一样的分离的 interface / implementation 段。在需要函数时,像下面这样声明即可:
def buildConnectionString(params):
首先,函数声明以关键字 def 开始,接着为函数名,再往后为参数,参数放在小括号里。多个参数之间 (这里没有演示)用逗号分隔。
其次,函数没有定义返回的数据类型。Python 不需要指定返回值的数据类型;甚至不需要指定是否有返回值。实际上,每个 Python 函数都返回一个值;如果函数执行过 return 语句,它将返回指定的值,否则将返回 None (Python 的空值)。
Python vs. Visual Basic 的返回值
在 Visual Basic 中,函数 (有返回值) 以 function 开始,而子程序 (无返回值) 以sub 开始。在 Python 中没有子程序。只有函数,所有的函数都有返回值 (尽管可能为 None ),并且所有的函数都以 def 开始。
最后需要指出的是,在 Python 中参数, params 不需要指定数据类型。Python会判定一个变量是什么类型,并在内部将其记录下来。
Python vs. Java 的返回值
在 Java、C++ 和其他静态类型语言中,必须要指定函数返回值和每个函数参数的数据类型。在 Python 中,永远也不需要明确指定任何东西的数据类型。Python 会根据赋给它的值在内部将其数据类型记录下来。上海python培训IT学堂有python很多相关技术文章可以参考阅读。
2、Python 和其他编程语言数据类型的比较
一位博学的读者发给我 Python 如何与其它编程语言的比较的解释:
静态类型语言
一种在编译期间就确定数据类型的语言。大多数静态类型语言是通过要求在使用任一变量之前声明其数据类型来保证这一点的。Java 和 C是静态类型语言。
动态类型语言
一种在运行期间才去确定数据类型的语言,与静态类型相反。VBScript和 Python 是动态类型的,因为它们确定一个变量的类型是在您第一次给它赋值的时候。
强类型语言
一种总是强制类型定义的语言。Java 和 Python 是强制类型定义的。您有一个整数,如果不明确地进行转换 ,不能将把它当成一个字符串。
弱类型语言
一种类型可以被忽略的语言,与强类型相反。VBScript 是弱类型的。在VBScript 中,您可以将字符串 '12' 和整数 3 进行连接得到字符串 '123' ,然后可以把它看成整数 123 ,所有这些都不需要任何的显示转换。所以说 Python 既是 动态类型语言 (因为它不使用显示数据类型声明),又是强类型语言 (因为只要一个变量获得了一个数据类型,它实际上就一直是这个类型了)。上海python培训
3、 文档化函数
可以通过给出一个 doc string (文档字符串) 来文档化一个 Python 函数。
Example . 定 义 buil dCon necti onStr ing 函数的 doc str ing
def buildConnectionString(params):
"""Build a connection string from a dictionary of parameters.
Returns string."""
三重引号表示一个多行字符串。在开始与结束引号间的所有东西都被视为单个字符串的一部分,包括硬回车和其它的引号字符。您可以在任何地方使用它们,但是您可能会发现,它们经常被用于定义 doc string 。
Python vs. Perl 中的引号
三重引号也是一种定义既包含单引号又包含双引号的字符串的简单方法,就像 Perl 中的 qq/.../ 。
在三重引号中的任何东西都是这个函数的 doc string ,它们用来说明函数可以做什么。如果存在 doc string ,它必须是一个函数要定义的第一个内容 (也就是说,在冒号后面的第一个内容)。在技术上不要求给出函数的 doc string ,但是您应该这样做。我相信在您上过的每一种编程课上都听到过这一点,但是 Python带给您一些额外的动机: doc string 在运行时可作为函数的属性。
为 什 么 使用 doc string 是种好选择
许多 Python IDE 使用 doc string 来提供上下文敏感的文档信息,所以当键入一个函数名时,它的 doc string 显示为一个工具提示。这一点可以说非常有用,但是它的好坏取决于您书写的 doc string 的好坏。
参考来源:Dive Into Python http://diveintopython.org/
上海尚学堂python培训bianji编辑整理,感谢您阅读。欢迎评论,获取更多python内容或支持请点击 上海python培训
Python函数声明以及与其他编程语言数据类型的比较的更多相关文章
- python函数声明和调用(18)
函数是指代码片段,可以重复调用,比如我们前面文章接触到的type()/len()等等都是函数,这些函数是python的内置函数,python底层封装后用于实现某些功能. 一.函数的定义 在Python ...
- Python 函数参数有冒号 声明后有-> 箭头 返回值注释 参数类型注释
在python3.7 环境下 函数声明时能在参数后加冒号,如图: 1 def f(ham: str, eggs: str = 'eggs') -> str : 2 print("Ann ...
- 可变数据类型不能作为python函数的参数
可变数据类型:列表.字典 不可变数据类型:整型.浮点型.字符串.元组 为什么可变数据类型不能作为python函数的参数?请看以下例子: def foo(a=[]): a.append(1) retur ...
- python函数进阶
知识内容: 1.函数即变量 2.嵌套函数 3.lambda表达式与匿名函数 4.递归函数 5.函数式编程简介 6.高阶函数与闭包 一.函数即变量 1.变量的本质 声明一个变量,在python里本质上讲 ...
- python 自动化之路 day 01.1 数据类型
一.变量二.数据类型2.1 什么是数据类型及数据类型分类2.2 标准数据类型:2.2.1 数字2.2.1.1 整型:2.2.1.2 长整型long:2.2.1.3 布尔bool:2.2.1.4 浮点数 ...
- Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例
由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二 ...
- python——函数
python--函数 1.介绍: 在过去的十年间,大家广为熟知的编程方法无非两种:面向对象和面向过程,其实,无论哪种,都是一种编程的规范或者是如何编程的方法论.而如今,一种更为古老的编程方式:函数式编 ...
- Python函数(一)之杵臼之交
Python函数 函数的作用:对功能进行封装,减少重复代码,方便维护,流程清晰明了,易于理解. 函数的结构: def 函数名(): 函数体 return语句 函数的返回值: 可以 ...
- python函数的参数细节
按"指针"传递 python中变量赋值.参数传递都是通过"指针"拷贝的方式进行的.除了按"指针"拷贝,还有一种按值拷贝的方式,关于按值.按指 ...
随机推荐
- wqy的easy
题解不再赘述,\(wqy\) 写的很详细了,记点细节. \(A:\) \(n+1\) 位置也要差分一下,否则无法保证正确性. \(B:\) 贪心喜提二十分...充分考虑时间和\(std\)复杂度的关系 ...
- C#基于websocket-sharp实现简易httpserver(封装)
一.背景 其实就是很简单的,公司会桌面开发的人员紧缺啊,项目又赶,而我们公司的前端人员人多还厉害(ps:吐槽下,后端的人真的少啊,会桌面开发的更少啊),所以萌生出了使用html+js来构建本地应用程序 ...
- Shell常用快捷键
编辑命令 ctr+u 删除光标到行首(unix-line-discard) ctrl+k 删除此处至末尾(kill-line) ctr+e 光标移到末尾(end) ctr+a 光标移到行首(ahead ...
- Linux 常用命令介绍
介绍常用命令,在忘记时便于即使查询 复制.移动.删除 cp.mv.rm.pwd 1. CP 介绍 用法:CP [-adfilprsu] 源文件 目标文件 参数:参数说明: -a:是指arc ...
- 通过GIT_COMMIT进行代码回滚
首先需要安装插件:conditional-buildstep A buildstep wrapping any number of other buildsteps, controlling thei ...
- Python3学习十四
1. JS基本概念 网景和sun联合开发javascript javascript 三个部分:ECMAScript 语法 DOM(document object model) BOM(b ...
- ZOJ Problem Set - 3593 拓展欧几里得 数学
ZOJ Problem Set - 3593 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3593 One Person ...
- 烽火2640路由器命令行手册-13-VPDN(L2TP,PPTP,PPPOE)配置命令
VPDN(L2TP,PPTP,PPPOE)配置命令 目 录 第1章 VPDN配置命令... 1 1.1 VPDN配置命令... 1 1.1.1 accept-dialin. 1 1.1.2 doma ...
- css设置多列等高布局
初始时,多个列内容大小不同,高度不同.现在需要设置不同的背景来显示,而且各个列的高度需要保持一致.那么这就需要利用到多列等高布局. 最终需要的效果: 1. 真实等高布局 flex 技术点:弹性盒子布局 ...
- ASP.NET Core快速入门学习笔记(第2章:配置管理)
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务9:配置介绍 命令行配置 Json文件配置 从配置文件文本到c#对象实例的 ...