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读取浮点数和读取文本文件示例
May 06 Python
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
Python3.6实现连接mysql或mariadb的方法分析
May 18 Python
Python实现的简单排列组合算法示例
Jul 04 Python
Pandas分组与排序的实现
Jul 23 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
Python通过zookeeper实现分布式服务代码解析
Jul 22 Python
python状态机transitions库详解
Jun 02 Python
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
PHP开发的一些注意点总结
2010/10/12 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
JQuery 学习笔记 选择器之二
2009/07/23 Javascript
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
python定时器使用示例分享
2014/02/16 Python
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
python实现爬虫下载美女图片
2015/07/14 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
python实现画循环圆
2019/11/23 Python
python super()函数的基本使用
2020/09/10 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
CSS3实现时间轴效果
2016/07/11 HTML / CSS
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
C语言50道问题
2014/10/23 面试题
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
简历的自荐信
2013/12/19 职场文书
学生期末评语大全
2014/04/30 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
民事纠纷协议书
2016/03/23 职场文书
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript