我正在阅读Photoshop,Illustrator和InDesign的JavaScript脚本指南.API真的很难读,因为它假设我知道某些简写约定.问题不仅限于此特定脚本指南.我可以列出几十个出现同样问题的人.
当我将API作为一个24小时不在代码中的人阅读时,我想查看一些内容,并以最基本的形式查看代码的简单示例.但通常一开始就不容易理解它.
这是一个例子.我正在查找如何在Photoshop中通过JavaScript更改项目的颜色.所以我搜索PDF并找到"fillColor".我在文档中找到了这个:
fillPath
([fillColor]
[, mode]
[, opacity]
[, preserveTransparency] [, feather]
[, wholePath] [, antiAlias])
Run Code Online (Sandbox Code Playgroud)
当我读到这篇文章时,乍一看毫无意义.为什么有括号,我怎么知道我不应该在实现中使用它们?为什么括号中有逗号?我知道从我找到的样本代码应该是什么样的,这是:
myPath.fillPath(myNewColor)
myPath.fillPath(mynewColor, {
mode: RGB,
opacity: .5
})
Run Code Online (Sandbox Code Playgroud)
如果我没有看到这个例子,我绝对不会从API代码中看出这个方法在实现时的外观.其他人指出这个方法的扩展示例可能如下所示:
fillPath
([fillColor]
[, mode]
[, opacity]
[, preserveTransparency] [, feather]
[, wholePath] [, antiAlias])
Run Code Online (Sandbox Code Playgroud)
好.我看到我可以省略隐含的可选参数.精细.但同样,我绝不会从API中猜到这一点.
那么,某处是否有一些神秘的文件告诉人们如何阅读API文档?为什么这样写?我有什么先验知识?为什么会这样,我该怎么做才能停止对它的疑惑并"得到"它,所以我可以更乐意阅读并实现下一个API?
那么为什么API文档的编写方式会混淆像我这样的常年新手/黑客/ DIY玩家呢?
我正在阅读python文档,在那里我遇到了elem [,n]这个用于参数的符号.我过去见过这样的符号.不要只知道他们的意思.此外,谷歌不支持搜索括号.
如果浏览官方 Python 文档,可以看到各种函数(或类)签名。
对于例如
random.uniform(a, b)
很容易理解:您向它传递两个对象a和b(它们是浮点数,它从它们之间的间隔返回一个随机数)。同样容易理解的是签名来自
SSLSocket.getpeercert(binary_form=False)
其中还指定了参数的默认值,以防它在没有任何参数的情况下被调用。
但是也有一些函数具有非常奇怪的签名,例如
min(iterable, *[, key, default])
readline.append_history_file(nelements[, 文件名])
csv.register_dialect(名称[,方言[,**fmtparams]])
这些都是什么意思?是否有一些参考指南解释如何阅读诸如name[, dialect[, **fmtparams]]?
这些示例只是从官方 Python 文档中随机抽取的,并未涵盖我遇到的所有签名类型。我需要一个如何阅读这些签名的一般解释。
我有以下内容:
list = [32,12,43,24,65,16]
Run Code Online (Sandbox Code Playgroud)
我试图将该列表中的元素排除在第一个元素之外,我想总结(12,43 ...)我尝试过:
sum(list[,1])
sum(list,[1])
sum(list,1)
Run Code Online (Sandbox Code Playgroud)
但它们似乎都没有用.文档显示sum(iterable[, start]).
我不知道如何解释这种表示法:
timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
Run Code Online (Sandbox Code Playgroud)
资料来源: https ://docs.python.org/2/library/datetime.html#timedelta-objects
我使用这个函数只有一个关键字参数没有不便但我无法理解这种表示法的原因¿它有一个名字吗?很抱歉,如果这是一个重复的帖子,但我不知道如何谷歌它.
我不明白为什么他们用round(x[,n])语法编写,但在代码中他们round(10.6987,12)在逗号之前没有方括号写,即round(10.6987[,12])