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与Java间Socket通信实例代码
Mar 06 Python
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
May 28 Python
对python列表里的字典元素去重方法详解
Jan 21 Python
Python进阶之全面解读高级特性之切片
Feb 19 Python
Python使用sklearn实现的各种回归算法示例
Jul 04 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
python编写softmax函数、交叉熵函数实例
Jun 11 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 Python
这样写python注释让代码更加的优雅
Jun 02 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的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php三元运算符知识汇总
2015/07/02 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python实现文本文件合并
2015/12/29 Python
python实现批量监控网站
2016/09/09 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
python打开windows应用程序的实例
2019/06/28 Python
Python collections模块的使用方法
2020/10/09 Python
软件工程师面试题
2012/06/25 面试题
商场中秋节广播稿
2014/01/17 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
运动员加油词
2015/07/18 职场文书
《窃读记》教学反思
2016/02/18 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
一文带你探究MySQL中的NULL
2021/11/11 MySQL
Python pyecharts绘制条形图详解
2022/04/02 Python