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写入数据到MP3文件中的方法
Jul 10 Python
详解C++编程中一元运算符的重载
Jan 19 Python
python简单实现刷新智联简历
Mar 30 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
在python中pandas的series合并方法
Nov 12 Python
Python 通过打码平台实现验证码的实现
May 13 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
Python文本处理简单易懂方法解析
Dec 19 Python
python颜色随机生成器的实例代码
Jan 10 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 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
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
php提高网站效率的技巧
2015/09/29 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
Apache部署Django项目图文详解
2019/07/30 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
通过代码实例了解Python sys模块
2020/09/14 Python
python 调用Google翻译接口的方法
2020/12/09 Python
python中str内置函数用法总结
2020/12/27 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
给老婆大人的检讨书
2014/02/24 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书