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

时间:2015-08-20 21:56:27

标签: python class methods parentheses

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

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

...为什么在"鞋帮之后会出现一对空括号?"它有什么用吗?有没有人会把东西放在那里的情况?谢谢!

3 个答案:

答案 0 :(得分:8)

因为没有那些你只是引用方法对象。 使用它们告诉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文档中明确列为单独的表达式:

  

调用调用可调用对象(例如,函数),其中可能包含一系列参数

答案 1 :(得分:0)

括号表示您要调用方法

upper()返回应用于字符串

的方法的值

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

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

答案 2 :(得分:0)

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

upper2 = 'Michael'.upper
upper2() # does the same thing as 'Michael'.upper() !