Tag Archives: Python

Python中函数的参数传递与可变长参数

转载自:Python中函数的参数传递与可变长参数

1.Python中也有像C++一样的默认缺省函数
def foo(text,num=0):
print text,num

foo("asd") #asd 0
foo("def",100) #def 100
定义有默认参数的函数时,这些默认值参数位置必须都在非默认值参数后面。

调用时提供默认值参数值时,使用提供的值,否则使用默认值。

2.Python可以根据参数名传参数
def foo(ip,port)[......]

继续阅读

Python中使用pack/unpack编码字节数据

在Python中,是没有int, long这些c系的强类型的,但是有的时候,我们需要按照字节规则,生成这样的数据。

例如:生成一份网络序的,char+unsigned long数据(4+8字节):
from struct import pack
pack('!BQ', 100, 1000)
'd\x00\x00\x00\x00\x00\x00\x03\xe8'
其中,第1个!表示为网络字节序。

BQ是占位符号,分别表示8bit的unsigned char和64bit的unsi[......]

继续阅读

Python中动态计算数学表达式

动态的意思是这样的需求:

假设,Python本地变量中已经存在了两个变量(不一定时代码中写死的,也可以是程序自动生成的)。
a = 3
b = 4
现在,有一个写了数学表达式的字符串:
'a + b'
则,期望其能输出7。

这个需求要2步完成:

1、生成本地变量a、b。

在实际需求中,变量的值往往也是动态生成,而非写死在代码中。

可以用locals,或者exec完成:
locals()['a'] = 3
exec[......]

继续阅读