提高对Python 3函数调用和变量的理解

提高对Python 3函数调用和变量的理解,python,python-3.x,Python,Python 3.x,对于下面的Python脚本,我有几个问题要检查我的理解。如能对下文第1点和第2点作出答复,将不胜感激 from sys import argv script, input_file = argv def print_all(f): print(f.read()) def rewind(f): f.seek(0) def print_a_line(line_count, f): print(line_count, f.readline()) current_fil

对于下面的Python脚本,我有几个问题要检查我的理解。如能对下文第1点和第2点作出答复,将不胜感激

from sys import argv

script, input_file = argv

def print_all(f):
    print(f.read())

def rewind(f):
    f.seek(0)

def print_a_line(line_count, f):
    print(line_count, f.readline())

current_file = open(input_file)

print("First let's print the whole file:\n")

print_all(current_file)

print("Now let's rewind, kind of like a tape.")

rewind(current_file)

print("Let's print three lines:")

current_line = 1

print_a_line(current_line, current_file)

current_line = current_line + 1 

print_a_line(current_line, current_file)

current_line = current_line + 1

print_a_line(current_line, current_file)
1每次运行print_a_line函数时,变量current_line都会传递给函数。如何在每次函数调用时输出当前_线等于多少?我认为可以简单地将函数更改为使用内置函数print,如下所示:


2我被要求在“打印行”函数中“跟踪”变量当前行如何变为行计数。我能想到的最简单的答案是调用函数,并将变量current\u line作为参数传递给line\u count

我不确定这是否能让它更清楚,但接下来

在Python中,不能真正地将变量传递给函数,只能传递它们的值。 当我们说将x传递给f时,它意味着将x的值传递给f

当前_行的值作为第一个参数传递给print_a_行。 该参数称为line_count,其值与传入的值相同

从打印线的角度来看,当前可变线不存在;它是在不同的范围内定义的,您不能从该函数中观察它

def print_a_line(line_count, f):
    print(current_line)
    print(line_count, f.readline())