python - Python 方法名称末尾的括号是什么?

标签 python class methods parentheses

<分区>

我是 Python 和一般编程的初学者。现在,我无法理解内置或用户创建的方法名称末尾空括号的功能。例如,如果我写:

print "This string will now be uppercase".upper()

...为什么“upper”后面有一对空括号?它有什么作用吗?有没有放东西进去的情况?谢谢!

最佳答案

因为没有那些你只是在引用方法对象。 通过它们,您可以告诉 Python 您想要调用该方法。

在 Python 中,函数和方法是一阶对象。您可以存储该方法以备后用,而无需调用它,例如:

>>> "This string will now be uppercase".upper
<built-in method upper of str object at 0x1046c4270>
>>> get_uppercase = "This string will now be uppercase".upper
>>> get_uppercase()
'THIS STRING WILL NOW BE UPPERCASE'

此处 get_uppercase 存储对字符串的绑定(bind) str.upper 方法的引用。只有当我们在引用之后添加 () 时,才是真正调用的方法。

这里的方法没有参数没有区别。您仍然需要告诉 Python 进行实际调用。

(...) 部分称为 Call expression ,在 Python 文档中明确列为单独的表达式类型:

A call calls a callable object (e.g., a function) with a possibly empty series of arguments.

关于python - Python 方法名称末尾的括号是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32129064/

相关文章:

python - 我可以在 python3 中使 pprint 不拆分字符串,就像在 python2 中一样吗?

c++ - 在静态函数中调用成员函数指针

java - 将方法传递给变量

c# - 通用函数包装器

python - 如何通过 reverse() 使用现有 View ?

python - AWS API 网关 Lambda 错误正则表达式

python - 如何创建虚拟文件作为内存缓冲区

html - 在 CSS 中选择具有确定类的 div 中的特定元素

xcode - 如何从嵌套类swift更新类中的变量

java - 编译错误 : Missing return statement