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中的hashlib和base64加密模块使用实例
Sep 02 Python
Python 内置函数complex详解
Oct 23 Python
Python 中开发pattern的string模板(template) 实例详解
Apr 01 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
Python切片操作深入详解
Jul 27 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 Python
基于python实现文件加密功能
Jan 06 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 Python
python实现斗地主分牌洗牌
Jun 22 Python
python+openCV对视频进行截取的实现
Nov 27 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
php 面向对象的一个例子
2011/04/12 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
react-router实现按需加载
2017/05/09 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
2019/05/16 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
Python中的字典与成员运算符初步探究
2015/10/13 Python
Python字符串格式化输出方法分析
2016/04/13 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
python实现邮件自动发送
2019/08/10 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
Python tornado上传文件的功能
2020/03/26 Python
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
七一表彰活动方案
2014/01/18 职场文书
婚礼秀策划方案
2014/05/19 职场文书
反腐倡廉标语
2014/06/24 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
教育教学工作反思
2016/02/24 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
go goroutine 怎样进行错误处理
2021/07/16 Golang
学习nginx基础知识
2021/09/04 Servers