Python调用函数问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python调用函数问题?相关的知识,希望对你有一定的参考价值。

为什么调用有的函数需要加(),有的不用加,如下图content不需要加,decode需要加

content是个Response对象的属性 (有点类似变量), 而decode是bytes的一个方法
方法在使用(调用/执行)的时候是需要加括号的, 如果不加括号就会返回这个方法本身(类似函数指针), 而变量/成员字段/属性是不能加括号的(除非它实现了__call__()方法)追问

content不是requests下面的吗?和response是什么关系?
这种调用属性或者方法的方式,可以一直调用吗?(r.content.encode().decode()...像这种一直...下去)

追答

    content是r的属性, r是Response类的对象(requests.get()方法返回值)

    可以, 函数是可以连续调用的, 调用的是前面那个方法返回的对象的成员方法

参考技术A 加和不加都是有文档的,并不是凭空想象的,也就是说你需要看别人库的文档甚至源码,才知道究竟加不加
加的定义的时候是函数,不加的定义的时候是属性/字段
参考技术B 就像tkinter(python的gui库),
你说函数加括号,它可以加,用lambda,
默认不加,因为这是一个参数,就像:
def do(command):
--command("hello")
这时候,调用do函数是不加参的:
do(print)
如果用lambda:
do(lambda a:print("hello everybody!"))
就不是显示hello而是hello everybody!了

以上是关于Python调用函数问题?的主要内容,如果未能解决你的问题,请参考以下文章

Python函数调用的问题

python 怎么在一个函数中调用同一个函数两次

如何调用自己写的python函数

python中怎么调用函数

python可变參数调用函数问题

python中怎么调用自定义函数