python使用函数的目的_在函数参数中使用裸asterix的目的是什么?

PEP 3102很清楚地解释了基本原理:关键是允许函数接受本质上正交的各种“选项”。指定这些位置在定义和调用方面都很尴尬,因为它们没有任何明显的“优先级”可以转换为位置顺序。在

在不同的库中,有许多函数可以从中受益。例如,pandas.read_csv的调用签名是:def parser_f(filepath_or_buffer,

sep=sep,

dialect=None,

compression=None,

doublequote=True,

escapechar=None,

quotechar='"',

quoting=csv.QUOTE_MINIMAL,

skipinitialspace=False,

lineterminator=None,

header='infer',

index_col=None,

names=None,

prefix=None,

skiprows=None,

skipfooter=None,

skip_footer=0,

na_values=None,

na_fvalues=None,

true_values=None,

false_values=None,

delimiter=None,

converters=None,

dtype=None,

usecols=None,

engine='c',

delim_whitespace=False,

as_recarray=False,

na_filter=True,

compact_ints=False,

use_unsigned=False,

low_memory=_c_parser_defaults['low_memory'],

buffer_lines=None,

warn_bad_lines=True,

error_bad_lines=True,

keep_default_na=True,

thousands=None,

comment=None,

decimal=b'.',

parse_dates=False,

keep_date_col=False,

dayfirst=False,

date_parser=None,

memory_map=False,

nrows=None,

iterator=False,

chunksize=None,

verbose=False,

encoding=None,

squeeze=False,

mangle_dupe_cols=True,

tupleize_cols=False,

infer_datetime_format=False):

除了filepath之外,大多数都是正交选项,用于指定如何解析CSV文件的不同方面。没有什么特别的原因,它们会以任何特定的顺序通过。你会发疯的跟踪这些东西的位置顺序。将它们作为关键字传递更有意义。在

现在,您可以看到pandas实际上并没有将它们定义为仅限关键字的参数,大概是为了保持与python2的兼容性。我可以想象,许多库出于同样的原因而避免使用这种语法。我不知道哪些图书馆(如果有的话)已经开始使用它。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值