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 多线程应用介绍
Dec 19 Python
Python入门篇之对象类型
Oct 17 Python
Python中的Numeric包和Numarray包使用教程
Apr 13 Python
讲解Python中运算符使用时的优先级
May 14 Python
python开发利器之ulipad的使用实践
Mar 16 Python
运行django项目指定IP和端口的方法
May 14 Python
Python单元和文档测试实例详解
Apr 11 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
Python同时处理多个异常的方法
Jul 28 Python
python 实现表情识别
Nov 21 Python
python实现学员管理系统(面向对象版)
Jun 05 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 header()函数语法及使用代码
2013/11/04 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
用javascript作一个通用向导说明
2011/08/30 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
详解jquery和vue对比
2019/04/16 jQuery
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
在Python中使用元类的教程
2015/04/28 Python
python字典排序实例详解
2015/05/20 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
室内设计专业个人的自我评价
2013/10/19 职场文书
关键在于落实心得体会
2014/09/03 职场文书
春晚观后感
2015/06/11 职场文书
数据库连接池
2021/04/06 MySQL
javascript数组includes、reduce的基本使用
2021/07/02 Javascript