有人可以给我解释一下
.read()
,.truncate()
和.close()
命令在做什么?
我为他们为什么为空以及为什么不写成这样而感到困惑:
read(filename)
,truncate(filename)
和close(filename)
,而不是
filename.read()
,filename.truncate()
和filename.close()
?
但是open
被写为open(filename)
,而不是filename.open()
答案 0 :(得分:3)
这些括号()
用于实际调用某个函数,而不仅仅是引用它。
例如,考虑:
def func():
return "I am being called!"
print(func)
# <function func at 0x7f41f59a6b70>
print(func())
# I am being called!
关于func(x)
和x.func()
语法,这是一种设计/风格选择。
第一种语法与过程设计/样式相关联,而第二种语法与显式面向对象的设计/样式相关联。
Python(以及许多其他通用语言)都支持。
func
设计为:
def func(x):
...
您将使用程序样式。
当func
设计为:
class MyX(object):
def func(self):
...
您将使用面向对象的样式。
请注意,这将要求x
属于MyX
类型(或其子类)。
Python教程中提供了更多信息,例如here。
最后的注释:在某些编程语言(尤其是D
和nim
)中,存在Uniform Function Call Syntax的概念,该概念基本上允许您编写函数,然后使用任何语法对其进行调用(过程性或面向对象)。