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

2024-10-04 03:29:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python和编程的初学者。现在,我很难理解方法名、内置或用户创建的结尾处的空括号的功能。例如,如果我写:

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

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


Tags: 方法用户功能string编程bethisupper
3条回答

括号表示要调用方法

upper()返回应用于字符串的方法的值

如果简单地说upper,那么它返回一个方法,而不是应用该方法时获得的值

>>> print "This string will now be uppercase".upper
<built-in method upper of str object at 0x7ff41585fe40>
>>> 

upper()是要求上层方法运行的命令,而upper是对方法本身的引用。例如

upper2 = 'Michael'.upper
upper2() # does the same thing as 'Michael'.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存储对字符串的绑定str.upper方法的引用。只有当我们在引用之后添加()时,才是实际调用的方法。

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

那么(...)部分称为Call expression,在Python文档中作为单独的表达式类型显式列出:

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

相关问题 更多 >