繁体   English   中英

Python 方法调用的方法?

[英]Python Method of method calls?

今天我正在阅读 Kazil 和 Jarumul 的“与 Python 的数据争吵”(链接)。 这是我在 Python 编码的第一周。

在正文中,我们在第 53 页有一段代码,如下所示:

import json

json_data = open('Book Source Files/data/chp3/data-text.json').read() **#<< Focus Line**

data = json.loads(json_data) #json object, loads method?

for item in data:
    print('item', item)

我很难理解上面的重点线(第二行代码)。

我知道 Python 在调用 object 方法时似乎遵循 object.method(Inputs) 的一般语法。 我还了解到,当我对对象或方法有疑问时,我可以在不带括号的情况下调用帮助:

help(open.read) #errors. Incorrect.

但在这种情况下,看起来好像调用了两个方法:open().read()。

我尝试寻求有关此方法的帮助来解释这一点,但似乎我在这里缺少一个核心概念。 这是某种速记吗? 这被称为什么,在什么情况下使用它?

后续问题:有时我们将许多不同的值传递给 function。 例如:

print('this','is','a','line','of','text')

为什么有些方法似乎对提供哪些项目有规则,但其他方法在调用方法时可以提供可变数量的东西?

它被称为方法链

open() 返回一个 object,然后调用该 object 的 read() 方法。

相当于:

fd = open(path)
data = fd.read()

对于不熟悉 function 的人(比如您自己),链接可能会降低可读性。

关于您关于“某些方法似乎对提供哪些物品有规则”的问题,这完全取决于 function 的声明方式。 您可以 decalre 函数以接受无参数、命名参数、关键字参数的任意组合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM