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使用Redis实现作业调度系统(超简单)
Mar 22 Python
使用Python的Flask框架来搭建第一个Web应用程序
Jun 04 Python
一张图带我们入门Python基础教程
Feb 05 Python
python 实现判断ip连通性的方法总结
Apr 22 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
详解pandas安装若干异常及解决方案总结
Jan 10 Python
Python子类继承父类构造函数详解
Feb 19 Python
Pytorch释放显存占用方式
Jan 13 Python
解析Python 偏函数用法全方位实现
Jun 26 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
Django路由层URLconf作用及原理解析
Sep 24 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
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
PHP实现微信发红包程序
2015/08/24 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
在vue项目中使用sass语法问题
2019/07/18 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
python学生管理系统的实现
2020/04/05 Python
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
优秀团员自我评价范文
2014/04/23 职场文书
护理专业求职信
2014/06/15 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
办公室主任岗位职责
2015/01/31 职场文书
关于远足的感想
2015/08/10 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
高一英语教学反思
2016/03/03 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python