python - 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')
为什么有些方法似乎对提供哪些项目有规则,但其他方法在调用方法时可以提供可变数量的东西?
解决方案
它被称为方法链
open() 返回一个对象,然后调用该对象的 read() 方法。
相当于 :
fd = open(path)
data = fd.read()
对于不熟悉函数的人(比如你自己)来说,链接会降低可读性。
关于您关于“某些方法似乎对提供哪些项目有规则”的问题,这完全取决于该函数的声明方式。您可以 decalre 函数以接受无参数、命名参数、关键字参数的任意组合。
推荐阅读
- dart - Flutter,从凸起按钮的 onPressed 调用 FutureBuilder 不会调用 builder 属性
- amazon-web-services - Cognito 注册时的电话号码格式无效
- sql - 使用 Oracle 创建过程
- sql - 谁知道2079年6月6日的SQL问题?
- python - Python在读取表格数据文件时给出超出范围的索引
- java - OpenJFX:(Gluon)SDK 与 Maven 依赖项
- excel - VBA替换工作表中除第一行外的所有内容
- activemq - ActiveMQ HA 故障转移
- r - 使用 plot_ly 在条形图中显示数据值
- javascript - angular 2 设置默认滚动查看