mhou022 发表于 2020-7-2 20:00:47

文件操作函数为何要和外面的一致?

例如函数:


   def plus(x, y):
      sum = x + y
      return sum
number1 = 5
number2 = 6
result = plus(5, 6)
print("The sum is: ", result)

参数是x和y,与全局变量的number1和number2的名称是不一样的。
但为什么在文件函数中,文件函数的参数要和外面的一抹一样呢?例如:

def file_compare(file1_name, file2_name):
    f1 = open(file1_name, encoding = 'utf-8')#这里也可以输入‘utf=8'好使
    f2 = open(file2_name, encoding = 'utf-8')#这里也可以输入‘utf=8'好使
    count = 0 # 统计行数
    differ = [] # 统计不一样的数量

    for line1 in f1:
      line2 = f2.readline()
      count += 1
      if line1 != line2:
            differ.append(count)

    f1.close()
    f2.close()
    return differ #differ是一个数字列表:如果differ = ,
                  #则len(differ)就等于4,表示列表中有四项,也就是四处不同。

file1_name = input('请输入需要比较的头一个文件名:') #输入文件时要输入全部路径E:\...\什么的
file2_name = input('请输入需要比较的另一个文件名:') #如果是中文,encoding也要考虑到

differ = file_compare(file1_name, file2_name)

if len(differ) == 0:
    print('两个文件完全一样!')
else:
    print('两个文件共有【%d】处不同:' % len(differ))
    for each in differ:
      print('第 %d 行不一样' % each)


在主程序中,两个文件名称分别是:file1_name和file2_name
而在两个文件对比的函数定义时,def file_compare(file1_name, file2_name):
以及在函数内部:
    f1 = open(file1_name, encoding = 'utf-8')
    f2 = open(file2_name, encoding = 'utf-8')
file1_name 与 file2_name的名称也完全一样。

为什么文件函数中的参数要和外面主程序文件名称保持一样呢?

谢谢

永恒的蓝色梦想 发表于 2020-7-2 20:03:28

并不需要一样

永恒的蓝色梦想 发表于 2020-7-2 20:06:16

这个就是单纯的重复了而已……

Twilight6 发表于 2020-7-2 20:11:55

本帖最后由 Twilight6 于 2020-7-2 20:15 编辑




不需要呀,你乱写也可以的,只是你写函数时候定义参数为 file_name 让你下次看代码时候知道需要传入的是 文件名

如果你写个 x 你下次看到这个函数就看不懂,还要重新解读代码

但是你在函数定义了参数名是什么,下面要使用这个变量时候就要写的是参数名

举个例子:
def func(num):
   print(num)# 这边要使用传入的值,使用的还是 num 而不是 xx

xx = 100
func(xx)# 这边将 xx 传入,但是在函数内部还是使用 num

mhou022 发表于 2020-7-2 20:22:52

哦,是的,不需要一样。谢二位学长。这次好使了。{:10_282:}
页: [1]
查看完整版本: 文件操作函数为何要和外面的一致?