在进行练习的过程中,我发现了一些东西,即使经过研究,我根本无法掌握。
这是代码的具体位:
def print_all(f):
print f.read()
对于整个脚本:http://learnpythonthehardway.org/book/ex20.html
真正令我困惑的是(f)部分。 那个f来自哪里?它的目的是什么?
哦,好的,提前谢谢!
答案 0 :(得分:3)
f是一个文件或其他一些支持传递给print_all的read方法的对象。 read方法读取所有内容。 print语句打印出来。
答案 1 :(得分:2)
f
是函数的一个参数,它应该是一个类似于object的文件,并且在提供的示例中使用open调用构造。
script, input_file = argv
#...
current_file = open(input_file)
#...
#here, the body of current_file is executed,
#with f replaced by the value of current_file
print_all(current_file)
其中argv
(由sys
模块提供)是命令行上提供的字符串列表,例如["ex20.py", "test.txt"]
答案 2 :(得分:2)
f
是一个参数。它被传递给函数。例如:
def double(n):
return n * 2
鉴于此函数定义,请调用:
x = double(2)
print(x)
将产生:
4
你也可以做print(double(2))
。
此参数传递是函数,对象和对象方法的基本部分;理解这对理解任何 Python代码是必要的。
答案 3 :(得分:1)
他们提供的例子
script, input_file = argv
$ python ex20.py test.txt
表示f
是文件。
答案 4 :(得分:1)
f
是一个参数,在您将某些内容传递给该函数时定义:
script, input_file = argv
current_file = open(input_file)
print_all(current_file)
答案 5 :(得分:0)
f
是print_all()
用于传递给它的第一个参数的名称。
print_all(some_file)
print_all('Hello, World!')
print_all(23)
上述操作将print_all()
三次,f
在每次运行期间包含some_file
,'Hello, World!'
和23
的函数中。{ / p>
答案 6 :(得分:0)
你看我昨天开始学习Python了。但是让我试着澄清一下,
script, input_file = argv
将传递的参数(脚本名称和输入文件名)放入相应的变量中。
current_file = open(input_file)
这将为您传递的文件名创建文件处理程序对象
print_all(current_file)
这称为有问题的功能。因此,您定义了一个类似def functionName(arg1, arg2)
的函数,以通知此函数将采用多少参数(以及它的名称是什么)。
所以,你已定义def print_all(f)
说这个函数接受一个具有本地名称f的参数,该参数将用于该函数内的进一步使用。