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 相关文章推荐
Python3基础之条件与循环控制实例解析
Aug 13 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
python递归实现快速排序
Aug 18 Python
python-opencv 将连续图片写成视频格式的方法
Jan 08 Python
python交易记录链的实现过程详解
Jul 03 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
Django项目后台不挂断运行的方法
Aug 31 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
python调用API接口实现登陆短信验证
May 10 Python
2020版Python学习路线图(附学习资料)
Sep 15 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
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
Python中的引用和拷贝浅析
2014/11/22 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
详解python 爬取12306验证码
2019/05/10 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
应聘自荐信
2013/12/14 职场文书
九年级历史教学反思
2014/01/27 职场文书
优秀老师事迹材料
2014/02/05 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS
Docker官方工具docker-registry案例演示
2022/04/13 Servers