C程序员眼里的Python

python

初次接触Python,本文试图从一个C程序员的眼光来看待Python语言的怪异之处或惊喜之处,对语言的理解难免肤浅,敬请谅解

注释

Phython的注释和C语言非常不同,第一种 #开头的注释,类似于C的//开头,而"""对 包围注释,类似于C的/* */,以及xml类的<!--    -->。#号注释也就算了,"""实在无语,不知道这种另辟蹊径有什么好,徒增学习成本。

函数

Python的函数(类方法)的定义比较奇葩,以def开头,接着函数名,参数列表,冒号,函数体内容需缩进,如下,对于C、Java系统出身的人,没有花括号,真是不习惯啊

python;gutter:true;">def funcname (params) :

  ......

  ......

  return ...

函数能返回多个值

在看Python代码时经常发现函数返回多个结果值的情况,翻了资料才知道,其实也是单值返回,只是返回的就是数组而已,唯一的差别在于Python可以定义多个变量接收返回值,这个确实方便

下划线

有的时候看到函数返回值用_接收,或 for _ in range的语句,查了资料,_表示临时性的变量等,我们不关心此变量的值,但语法上又不能缺少,大致如此,不求甚解

 [:num]及[num:]写法

其中num是数组索引,如果是负数则从尾巴上数,-1表示最后一个元素,冒号表示分割,冒号在前,表示取索引前的所有元素,冒号在后,表示取索引所在位置及后面的所有元素。

举例:

>>> \'123\'[2:]
\'3\'
>>> \'123\'[:2]
\'12\'

类成员函数self参数

python类成员函数与普通函数形式一致,但要求第一个参数为self,在C程序员眼里这个真是非常无聊的事情,默认提供一个this关键字不是更好吗

字符串格式

python的字符串格式,使用%操作符,举例说明:

>>> a=1
>>> b=2
>>> \'%d:%d\' % (a, b)
\'1:2\'

非常简单,好用!

函数的关键字参数

函数的调用可以根据位置顺序来指定参数即位置参数,也可以根据参数名字来指定参数即关键字参数,使用关键字参数时,参数的位置无关,类似于JSON中的key;如果混合位置参数和关键字参数,那么,位置参数必须在前面,举例:

>>> def myprint(name, age):

... print \'name=%s age=%d\' % (name, age)

...

>>>

>>> myprint(\'tom\', 8)

name=tom age=8

>>> myprint(age=8, name=\'tom\')

name=tom age=8

>>> myprint(\'tom\', age=8)

name=tom age=8

在JavaScript编码中,经常会使用Object来传递参数,好处是参数非常灵活,Python的这种调用方式,在此基础上更跨一步。

函数的属性变量

在Python中一切皆对象,函数也是,所以可以通过函数名.变量名的方式来定义变量,如下:

>>> def billux():

... print \'hello\'

...

>>> billux()

hello

>>> billux.v = 4.5

>>> billux.v

4.5

 

以上是 C程序员眼里的Python 的全部内容, 来源链接: utcz.com/z/386517.html

回到顶部