我是Python和编程的初学者。现在,我无法理解方法名称末尾,内置或用户创建的空括号的功能。例如,如果我写:
print "This string will now be uppercase".upper()
...为什么在"鞋帮之后会出现一对空括号?"它有什么用吗?有没有人会把东西放在那里的情况?谢谢!
答案 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() !