首页 > 解决方案 > Python 方法调用的方法?

问题描述

今天我正在阅读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.method(Inputs) 的一般语法。我还了解到,当我对对象或方法有疑问时,我可以在不带括号的情况下调用帮助:

help(open.read) #errors. Incorrect.

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

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

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

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

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

标签: pythonpython-3.xoop

解决方案


它被称为方法链

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

相当于 :

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

对于不熟悉函数的人(比如你自己)来说,链接会降低可读性。

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


推荐阅读