1.
>>>help(dict,fromkeys)
Help on built-in function fromkeys:
fromkeys(iterable, value=None, /) method of builtins.type instance(bultins.type 实例的方法)
Returns a new dict with keys from iterable and values equal to value.
(END)
<1> 第一个疑问:
method of builtins.type instance:说明是builtins.type 的一个 方法,但是执行callable抛出异常.
>>> callable(builtins.type.fromkeys)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'type' has no attribute 'fromkeys'
<2> 自定义函数如下:
>>> def fun(var,optVar=None):
... if optVar is None:
... print(var)
... else:
... print(var,optVar)
...
>>> fun(2)
2
>>> fun(2,optVar=4)
2 4
调用fun(2,optVar)并不会抛出异常;但是下面的调用dict.fromkeys(iter([1,3]),value=20)为什么会抛出异常
>>> d = dict.fromkeys(iter([1,2]),value=40)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: fromkeys() takes no keyword arguments
<3>函数说明文档理解
>>>help(dict.get)
Help on method_descriptor:
get(...)
D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
在get(k[,d])中,[,d]的含义是d是可选唯一的另一个的参数?
有类似funName(k,[,a,b,c]) 这种类型的参数介绍吗?它的含义是不是除了参数k,另外a,b,c 这三个参数是可选的?
如有这方面资料希望玩分享下.
感谢在先.
built-in function
只是说这个是内置的方法, 你可以直接使用, 而不是让你callable(builtins.type.fromkeys)
这样调用.build-in
, 所以它的函数定义只是告诉我们默认值是什么而已, 而不同于我们平时的关键字参数
, 它的具体实现是通过c源码
实现的, 所以指定v=40
, 这种形式是会报错的! 你也可以查阅官网用法: (搜索 fromkeys)http://python.usyiyi.cn/trans...
[, v]
这样的说明, 就是说, v这个参数, 可以给也可以不给, 就好像上面的fromkeys
, 它的用法也是dict.fromkeys(S[,v])
, 就代表, v的那个参数, 如果你给就用你的值, 如果不给就用它默认的值