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中的__new__特殊方法
Jun 02 Python
Python中动态检测编码chardet的使用教程
Jul 06 Python
CentOS下使用yum安装python-pip失败的完美解决方法
Aug 16 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
Oct 14 Python
python-numpy-指数分布实例详解
Dec 07 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
pytorch 查看cuda 版本方式
Jun 23 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
python3 re返回形式总结
Nov 20 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
Python标准库之循环器(itertools)介绍
2014/11/25 Python
Python selenium如何设置等待时间
2016/09/15 Python
python实时分析日志的一个小脚本分享
2017/05/07 Python
Python随机读取文件实现实例
2017/05/25 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
python ubplot使用方法解析
2020/01/10 Python
python中的 zip函数详解及用法举例
2020/02/16 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
2015年保安个人工作总结
2015/04/02 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
八年级作文之友情
2019/11/25 职场文书
导游词之南京中山陵
2019/11/27 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
Go 语言中 20 个占位符的整理
2021/10/16 Golang