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函数声明以及与其他编程语言数据类型的比较的更多相关文章

  1. python函数声明和调用(18)

    函数是指代码片段,可以重复调用,比如我们前面文章接触到的type()/len()等等都是函数,这些函数是python的内置函数,python底层封装后用于实现某些功能. 一.函数的定义 在Python ...

  2. Python 函数参数有冒号 声明后有-> 箭头 返回值注释 参数类型注释

    在python3.7 环境下 函数声明时能在参数后加冒号,如图: 1 def f(ham: str, eggs: str = 'eggs') -> str : 2 print("Ann ...

  3. 可变数据类型不能作为python函数的参数

    可变数据类型:列表.字典 不可变数据类型:整型.浮点型.字符串.元组 为什么可变数据类型不能作为python函数的参数?请看以下例子: def foo(a=[]): a.append(1) retur ...

  4. python函数进阶

    知识内容: 1.函数即变量 2.嵌套函数 3.lambda表达式与匿名函数 4.递归函数 5.函数式编程简介 6.高阶函数与闭包 一.函数即变量 1.变量的本质 声明一个变量,在python里本质上讲 ...

  5. 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 浮点数 ...

  6. Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例

    由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二 ...

  7. python——函数

    python--函数 1.介绍: 在过去的十年间,大家广为熟知的编程方法无非两种:面向对象和面向过程,其实,无论哪种,都是一种编程的规范或者是如何编程的方法论.而如今,一种更为古老的编程方式:函数式编 ...

  8. Python函数(一)之杵臼之交

    Python函数 函数的作用:对功能进行封装,减少重复代码,方便维护,流程清晰明了,易于理解. 函数的结构: def 函数名():      函数体       return语句 函数的返回值: 可以 ...

  9. python函数的参数细节

    按"指针"传递 python中变量赋值.参数传递都是通过"指针"拷贝的方式进行的.除了按"指针"拷贝,还有一种按值拷贝的方式,关于按值.按指 ...

随机推荐

  1. django中常用的数据查询方法

    https://blog.csdn.net/chen1042246612/article/details/84071006

  2. vertx的Actor模型实现

    前言 note: Context 与 EventLoop 关系 : N ; 每次创建一个vericles或者multi instances 通过EventLoopGroup.next挑出一个Event ...

  3. UNIX环境高级编程、 现代操作系统概念

    UNIX环境高级编程 现代操作系统概念 讲讲内存屏障

  4. Linux内核优化

     相信做运维的同仁,进行运维环境初建时,必须要考虑到操作系统内核参数的优化问题,本人经历数次的运维环境重建后,决定要自行收集一份比较完善的系统内核参数优化说明文件出来,于是就有了下文,本文当前值是官方 ...

  5. Codeforces 959F Mahmoud and Ehab and yet another xor task 线性基 (看题解)

    Mahmoud and Ehab and yet another xor task 存在的元素的方案数都是一样的, 啊, 我好菜啊. 离线之后用线性基取check存不存在,然后计算答案. #inclu ...

  6. Codeforces 813C The Tag Game (BFS最短路)

    <题目链接> 题目大意:A.B两人在一颗树上,A在根节点1上,B在节点x上,现在他们轮流走,每次只能走一步,或者不走.A以尽可能靠近B的方式行走,B以尽可能远离A的方式走,B先开始走.问你 ...

  7. Goland2019.1破解

    Goland2019.1破解 Goland2019.1:http://www.jetbrains.com/goland/download/ 破解补丁:https://pan.baidu.com/s/1 ...

  8. JavaWeb从开发环境搭建,到第一个servlet程序(图文)

    ##  开学到今天,已经是第三周了~  然而这门课的教材还没发~   滋滋滋   表示很“蓝瘦”~~~ Java Web开发环境搭建 1. 下载安装Tomcat 官网地址:http://tomcat. ...

  9. 封装PDO函数

    funPDO.php <?php /** * @title: 封装PDO函数 * * @Features: * 1. 封装 SELECT ,INSERT,DELETE,UPDATE 操作 @do ...

  10. Python爬虫爬取豆瓣读书

    一,准备工作. 工具:win10+Python3.6 爬取目标:爬取图中红色方框的内容. 原则:能在源码中看到的信息都能爬取出来. 信息表现方式:CSV转Excel. 二,具体步骤. 先给出具体代码吧 ...