专业 Python 编程资源
Resources on Professional Python Programming
我正在寻找可以帮助我将 python 函数定义转变为专业品质函数的资源。
例如,我当前的 python 定义具有以下形式:
def foo(arg1,arg2,arg3=some_val,arg4=some_other_val):
""" Do something with the args """
# Create data using args
if arg3 == this_val:
return dataset_1, dataset_2
else :
return dataset_1, dataset_2, dataset_3
我想要一种方法,根据我要求的 return 数据,return 我感兴趣的数据。
例如,我可以说:
ds_1, ds_2, ds_3 = foo(arg1,arg2)
或
ds_1, ds_2 = foo(arg1,arg2,arg3=only_two_datasets_bool)
如何使函数不需要可选参数来知道我只需要两个数据集?
这类似于说 matplotlib 构造函数,其中可以说:
n = plt.hist(data)
其中 n 是直方图,但也可以这样做
n, bins = plt.hist(data)
并且 hist 函数知道 return 这两个值具有相同的数据输入(即没有可选参数说明它应该 return bins)。
虽然它可能看起来笨拙且不优雅,但您可以解压缩三个变量,并在需要时只使用其中的两个:
def foo(arg1, arg2):
return (arg1,arg2,3)
a, b, _ = asd(1,2)
print a, b # will print "1 2"
虽然 _
在 python 中并不像在许多其他语言中那样表示 "unused variable",但许多(或可能是大多数)会这样理解。即使是不提供明确支持的语言,如 Lua,也鼓励使用 _
作为占位符变量。
以这样的方式使用它,以便清楚 _
的含义,因为它在 python shell 中包含先前计算的表达式的值:
>>> 1+2
3
>>> _+3
6
>>>
我正在寻找可以帮助我将 python 函数定义转变为专业品质函数的资源。
例如,我当前的 python 定义具有以下形式:
def foo(arg1,arg2,arg3=some_val,arg4=some_other_val):
""" Do something with the args """
# Create data using args
if arg3 == this_val:
return dataset_1, dataset_2
else :
return dataset_1, dataset_2, dataset_3
我想要一种方法,根据我要求的 return 数据,return 我感兴趣的数据。
例如,我可以说:
ds_1, ds_2, ds_3 = foo(arg1,arg2)
或
ds_1, ds_2 = foo(arg1,arg2,arg3=only_two_datasets_bool)
如何使函数不需要可选参数来知道我只需要两个数据集?
这类似于说 matplotlib 构造函数,其中可以说:
n = plt.hist(data)
其中 n 是直方图,但也可以这样做
n, bins = plt.hist(data)
并且 hist 函数知道 return 这两个值具有相同的数据输入(即没有可选参数说明它应该 return bins)。
虽然它可能看起来笨拙且不优雅,但您可以解压缩三个变量,并在需要时只使用其中的两个:
def foo(arg1, arg2):
return (arg1,arg2,3)
a, b, _ = asd(1,2)
print a, b # will print "1 2"
虽然 _
在 python 中并不像在许多其他语言中那样表示 "unused variable",但许多(或可能是大多数)会这样理解。即使是不提供明确支持的语言,如 Lua,也鼓励使用 _
作为占位符变量。
以这样的方式使用它,以便清楚 _
的含义,因为它在 python shell 中包含先前计算的表达式的值:
>>> 1+2
3
>>> _+3
6
>>>