鱼C论坛

 找回密码
 立即注册
查看: 1623|回复: 4

[已解决]文件操作函数为何要和外面的一致?

[复制链接]
发表于 2020-7-2 20:00:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
例如函数:


   
  1. def plus(x, y):
  2.       sum = x + y
  3.       return sum
  4. number1 = 5
  5. number2 = 6
  6. result = plus(5, 6)
  7. print("The sum is: ", result)
复制代码


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

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

  6.     for line1 in f1:
  7.         line2 = f2.readline()
  8.         count += 1
  9.         if line1 != line2:
  10.             differ.append(count)

  11.     f1.close()
  12.     f2.close()
  13.     return differ #differ是一个数字列表:如果differ = [1, 2, 3, 5],
  14.                   #则len(differ)就等于4,表示列表中有四项,也就是四处不同。

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

  17. differ = file_compare(file1_name, file2_name)

  18. if len(differ) == 0:
  19.     print('两个文件完全一样!')
  20. else:
  21.     print('两个文件共有【%d】处不同:' % len(differ))
  22.     for each in differ:
  23.         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:11:55
本帖最后由 Twilight6 于 2020-7-2 20:15 编辑




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

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

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

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

  3. xx = 100
  4. func(xx)  # 这边将 xx 传入,但是在函数内部还是使用 num
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-2 20:03:28 | 显示全部楼层
并不需要一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 20:06:16 | 显示全部楼层
这个就是单纯的重复了而已……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 20:11:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-7-2 20:15 编辑




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

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

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

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

  3. xx = 100
  4. func(xx)  # 这边将 xx 传入,但是在函数内部还是使用 num
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 20:22:52 | 显示全部楼层
哦,是的,不需要一样。谢二位学长。这次好使了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 23:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表