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. eclipse导入本地的svn项目后不能在team提交更新

    由于项目是在本地有svn检出,然后再想通过eclipse 修改然后在eclipse内部提交和更新,但是此时,team里并没有update和commit选项, 又不想重新再检出一次项目,怎么办? 可以在 ...

  2. 15 个 Eclipse 常用开发快捷键使用技巧

    15 个 Eclipse 常用开发快捷键使用技巧 1.alt+? 或 alt+/:自动补全代码或者提示代码 2.ctrl+o:快速outline视图 3.ctrl+shift+r:打开资源列表 4.c ...

  3. mysql 服务器负载过高的解决分析之路

    最近我们有台 mysql 服务器一直报负载过高,不停的收到阿里云的报警短信,让我很抓狂,登陆上服务器,看下一下,慢查询日志 发现有60多万的慢查询日志,一看这个就知道是搜索带来的,一直想把搜索的服务给 ...

  4. oracle数据库学习

    trunc(number[,decimals])--number 待做截取处理的数值:decimals 指明需保留小数点后面的位数     CREATE PUBLIC DATABASE LINK Co ...

  5. web页面和小程序页面实现瀑布流效果

    小程序实现瀑布流效果,和web页面差不多,都要经过以下步骤: 1).加载图片,获取图片的宽高度: 2).根据页面需要显示几列计算每列的宽度: 3).根据图片真实宽度和每列的宽度比,计算出图片需要显示的 ...

  6. 关于hadoop的运行的一些指标监控(非cdh平台的)

    在hadoop-env.sh中添加: # 在配置namenode和datanode时都会有用到JMX_OPTS的代码,是为了减少重复提取出的公共代码 export JMX_OPTS="-Dc ...

  7. 1103_ddt 数据处理

    1.传入一个参数 import unittest from ddt import ddt,data,unpack @ddt class MyTestCase1(unittest.TestCase): ...

  8. 一种DTO的规划方案

    现在以网页发布的软件非常普遍,叫BS模式.前后端分离也是大趋势,或者说逐渐普及开来,深受前后端程序员的喜爱,我还是习惯以程序员来泛称所有软件制作者.后端需要把数据传送给前端,往往是通过DTO的序列化来 ...

  9. Pycharm相对路径

    问题: 今天有个程序,明显路径是存在的,但是os.path.exists的返回结果是False. 仔细想了想, 是相对路径的问题. 情况描述: 我的路径是: dir_path = 'data/mark ...

  10. ISP PIPLINE (十四) AE(自动曝光)

    自动曝光可以可以通过调节 模拟增益,数字增益,曝光时间,光圈大小来调剂曝光. 曝光在ISP PIPLINE的位置. (先介绍一个额外的知识点: ) gamma compression(也就是de-ga ...