Python函数必须先定义,后调用说明(函数调用函数例外)

作者:couragehope 时间:2022-03-06 18:03:53 

java开发者在定义类中的方法时,不会关心方法的定义相对于调用语句的位置。

但是python中需要注意:

函数必须先定义、后调用(函数调用函数例外)。

如下为示例说明:

1、python函数的应用一般需要:先定义、后调用:

Python函数必须先定义,后调用说明(函数调用函数例外)

2、如果函数定义在调用之后,执行将报错:

Python函数必须先定义,后调用说明(函数调用函数例外)

3、函数中调用函数不受此限制:

Python函数必须先定义,后调用说明(函数调用函数例外)

4、但是语句对函数调用,必须在函数调用之后,包括直接调用的函数调用的其他函数也必须在调用语句之前,否则报错:

Python函数必须先定义,后调用说明(函数调用函数例外)

补充知识:Python的列表等变量的声明必须要在函数定义与函数调用之前

源代码

—–这个代码作用是调用Linux应用终端操作来实现计算,并把计算结果取出来,组成相似矩阵,有五组值也就是有五组相似矩阵,这个是我做蛋白质结构预测用到的,自己写的,分享出来给大家,如有疑惑,欢迎评论区交流。


# 此代码主要为说明问题,后面我会贴上完整代码以及数据。
def cal_simi(n):
file = os.popen('cd '+path[n-1]+';ls').readlines()
RMSD_simi = []
TMscore_simi = []
MasSubscore_simi = []
GDTTSscore_simi = []
GDTHAscore_simi = []
for fileName1 in file:
 temp1 = [];temp2=[];temp3=[];temp4=[];temp5=[]
 for fileName2 in file:
  comm = 'cd /home/stern/Desktop/TMscore;' + 'sudo ./TMscore ' + path[n-1] + fileName1[:-1] +' '+ path[n-1] + fileName2[:-1]
  # storge the result of the command in data
  data = os.popen(comm).readlines()
  temp1.append(data[14][32:38]);temp2.append(data[16][14:20]);temp3.append(data[17][14:20])
  temp4.append(data[18][14:20]);temp5.append(data[19][14:20])
 RMSD_simi.append(temp1)
 TMscore_simi.append(temp2)
 MasSubscore_simi.append(temp3)
 GDTTSscore_simi.append(temp4)
 GDTHAscore_simi.append(temp5)
 p1 = np.median(RMSD_simi);p2 = np.median(TMscore_simi);p3 = np.median(MasSubscore_simi)
 p4 = np.median(GDTTSscore_simi);p5 = np.median(GDTHAscore_simi)
 for i in range(len(file)):
  RMSD_simi[i][i] = p1
  TMscore_simi[i][i] = p2
  MasSubscore_simi[i][i] = p3
  GDTTSscore_simi[i][i] = p4
  GDTHAscore_simi[i][i] = p5    
return RMSD_simi,TMscore_simi,MasSubscore_simi,GDTTSscore_simi,GDTHAscore_simi
Xn = ['1abv_','1af7_','1cqkA','1csp_','1dcjA','256bA']
path = ['/home/stern/Desktop/1abv_/','/home/stern/Desktop/1af7_/','/home/stern/Desktop/1cqkA/',
'/home/stern/Desktop/1csp_/','/home/stern/Desktop/1dcjA/','/home/stern/Desktop/256bA/']
# fsadf
RMSD_simi1 = []
TMscore_simi1 = []
MasSubscore_simi1 = []
GDTTSscore_simi1 = []
GDTHAscore_simi1 = []

RMSD_simi1,TMscore_simi1,MasSubscore_simi1,GDTTSscore_simi1,GDTHAscore_simi1=cal_simi(1)
print RMSD_simi1[1][1]
print TMscore_simi1[2][2]
print MasSubscore_simi1[3][3]
print GDTTSscore_simi1[4][4]
print GDTHAscore_simi1[5][5]

运行结果

—–运行结果,错误如下,如果把# fsadf后面的列表的声明提到函数定义的前面,则错误就没有了,列表的声明必须要在函数的调用之前,这个就更不用讲了,如果你不在函数调用之前的话,会提示列表不存在。。


Xn = ['1abv_','1af7_','1cqkA','1csp_','1dcjA','256bA']
File "<stdin>", line 30
Xn = ['1abv_','1af7_','1cqkA','1csp_','1dcjA','256bA']
 ^
SyntaxError: invalid syntax
>>> path = ['/home/stern/Desktop/1abv_/','/home/stern/Desktop/1af7_/','/home/stern/Desktop/1cqkA/',
...  '/home/stern/Desktop/1csp_/','/home/stern/Desktop/1dcjA/','/home/stern/Desktop/256bA/']

来源:https://blog.csdn.net/couragehope/article/details/83031932

标签:Python,函数,定义,调用
0
投稿

猜你喜欢

  • 浅谈Keras的Sequential与PyTorch的Sequential的区别

    2021-08-24 07:53:35
  • 详解Python如何利用turtle绘制中国结

    2021-02-10 13:52:29
  • Python Celery定时任务详细讲解

    2022-08-12 08:25:21
  • Python爬虫之pandas基本安装与使用方法示例

    2023-11-26 21:49:35
  • python学习之第三方包安装方法(两种方法)

    2021-02-20 03:29:40
  • ASP防止图片木马上传的代码

    2011-02-05 11:08:00
  • python进阶之多线程对同一个全局变量的处理方法

    2023-09-29 19:03:58
  • TensorFlow 2.0之后动态分配显存方式

    2023-12-20 05:25:17
  • python shutil操作文件实例讲解

    2022-05-20 06:42:08
  • Python使用pandas对数据进行差分运算的方法

    2021-09-28 06:56:07
  • php基础知识:类与对象(5) static

    2023-07-24 03:01:30
  • Python利用命名空间解析XML文档

    2021-10-06 05:45:32
  • Pytorch之卷积层的使用详解

    2022-09-04 16:43:21
  • python matlibplot绘制3D图形

    2023-05-21 18:47:36
  • python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例

    2023-08-11 19:10:44
  • python 文件操作删除某行的实例

    2022-09-21 12:15:18
  • 通过Jython调用Python脚本的实现方法

    2022-07-08 23:21:42
  • Python selenium实现大麦网自动购票过程解析

    2023-10-17 05:43:10
  • Python使用当前时间、随机数产生一个唯一数字的方法

    2022-02-10 14:57:07
  • Python语言规范之Pylint的详细用法

    2022-11-26 03:12:25
  • asp之家 网络编程 m.aspxhome.com