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中使用Flask、MongoDB搭建简易图片服务器
Feb 04 Python
在Python中处理XML的教程
Apr 29 Python
构建Python包的五个简单准则简介
Jun 15 Python
Python第三方库的安装方法总结
Jun 06 Python
Python中对象迭代与反迭代的技巧总结
Sep 17 Python
Python获取当前路径实现代码
May 08 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
Python3匿名函数用法示例
Jul 25 Python
pandas每次多Sheet写入文件的方法
Dec 10 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
详解Django配置JWT认证方式
May 09 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 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实现单链表的实例代码
2013/03/22 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
vue如何判断dom的class
2018/04/26 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
Python写的一个简单DNS服务器实例
2014/06/04 Python
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
SVM基本概念及Python实现代码
2017/12/27 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
详解python statistics模块及函数用法
2019/10/27 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
python palywright库基本使用
2021/01/21 Python
超市5.1促销活动
2014/01/15 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
大学生见习报告总结
2014/11/04 职场文书
实习单位指导教师评语
2014/12/30 职场文书
保研专家推荐信范文
2015/03/25 职场文书
三八妇女节致辞
2015/07/31 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书