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


Posted in Python onJune 02, 2020

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/']

以上这篇Python函数必须先定义,后调用说明(函数调用函数例外)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常用列表数据结构小结
Aug 06 Python
Python中死锁的形成示例及死锁情况的防止
Jun 14 Python
解决python2.7 查询mysql时出现中文乱码
Oct 09 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
keras小技巧——获取某一个网络层的输出方式
May 23 Python
Django搭建项目实战与避坑细节详解
Dec 06 Python
用Python进行栅格数据的分区统计和批量提取
May 27 Python
python百行代码实现汉服圈图片爬取
Nov 23 Python
QML实现钟表效果
Jun 02 #Python
Pymysql实现往表中插入数据过程解析
Jun 02 #Python
Django全局启用登陆验证login_required的方法
Jun 02 #Python
python爬虫基础知识点整理
Jun 02 #Python
如何理解python面向对象编程
Jun 01 #Python
Python CSS选择器爬取京东网商品信息过程解析
Jun 01 #Python
matlab、python中矩阵的互相导入导出方式
Jun 01 #Python
You might like
php adodb操作mysql数据库
2009/03/19 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
python下载的库包存放路径
2020/07/27 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
Python使用Pygame绘制时钟
2020/11/29 Python
中职生自我鉴定范文
2013/10/03 职场文书
应届大学生简历中的自我评价
2014/01/15 职场文书
论文评语大全
2014/04/29 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
家庭经济困难证明
2015/06/23 职场文书
在校学生证明格式
2015/06/24 职场文书