python helper函数_使函数定义以python文件顺序独立
使函数定义以python文件顺序独立
我使用Python CGI。 我无法在定义函数之前调用它。
在Oracle PL / SQL中,存在“转发声明”的技巧:将所有函数都命名为最顶层,因此定义的顺序无关紧要。
Python中也有这样的技巧吗?
例:
def do_something(ds_parameter):
helper_function(ds_parameter)
....
def helper_function(hf_parameter):
....
def main():
do_something(my_value)
main()
大卫是对的,我的榜样是错误的。关于什么:
def do_something(ds_parameter):
helper_function(ds_parameter)
....
def print_something():
do_something(my_value)
print_something()
def helper_function(hf_parameter):
....
def main()
....
main()
我可以在脚本顶部“提前声明”功能吗?
user37986 asked 2020-07-21T01:23:45Z
7个解决方案
66 votes
在使用任何功能之前,必须先定义所有功能。
但是,只要可以在任何可执行代码使用功能之前定义所有功能,就可以按任何顺序定义功能。
您不需要“转发声明”,因为所有声明都是完全相互独立的。 只要所有声明都在所有可执行代码之前。
您有问题吗? 如果是这样,请发布无效的代码。
在您的示例中,print_something()不合适。
规则:所有功能必须在任何实际起作用的代码之前定义
因此,将所有起作用的语句放在最后。
S.Lott answered 2020-07-21T01:26:00Z
28 votes
更好地说明您的观点是:
def main():
print_something()
....
def do_something(ds_parameter):
helper_function(ds_parameter)
....
def print_something():
do_something(my_value)
def helper_function(hf_parameter):
....
main()
换句话说,您可以将main()的定义放在顶部,以方便编辑-如果大部分时间都花在编辑main上,则避免频繁滚动。
Stan Vernon answered 2020-07-21T01:26:25Z
3 votes
假设您有一些代码片段在定义函数后调用了main,那么您的示例将按编写的方式工作。 由于Python的解释方式,定义do_something函数时,不需要定义helper_function主体调用的任何函数。
Python在执行代码时将采取的步骤如下。
定义函数do_something。
定义函数helper_function。
定义函数main。
(基于上面的假设)致电main。
从主要,调用do_something。
从helper_function,调用helper_function。
Python唯一关心helper_function存在的时间是到了第六步。 在尝试查找helper_function以便调用它之前,您应该能够验证Python一直执行到第六步,然后引发错误。
David Locke answered 2020-07-21T01:27:20Z
2 votes
我从来没有遇到过需要“前向功能定义”的情况。您能不能简单地将do_something移到您的主要功能内部?
def do_something(ds_parameter):
helper_function(ds_parameter)
....
def print_something():
do_something(my_value)
def helper_function(hf_parameter):
....
def main()
print_something()
....
main()
Python不在乎在第3行上使用了helper_function()(在do_something函数中)
我建议使用WinPDB之类的代码并逐步执行代码。 它很好地显示了Python的parser / executor(?)的工作方式
dbr answered 2020-07-21T01:27:49Z
2 votes
def funB(d,c):
return funA(d,c)
print funB(2,3)
def funA(x,y):
return x+y
上面的代码将返回错误。 但是,下面的代码很好...
def funB(d,c):
return funA(d,c)
def funA(x,y):
return x+y
print funB(2,3)
因此,即使您必须在完成任何实际工作之前一定先定义函数,但如果不显式使用该函数,则有可能逃脱现实。 我认为这有点类似于其他语言的原型制作。
nyan314sn answered 2020-07-21T01:28:14Z
1 votes
对于所有人来说,尽管做法不好,但仍需要解决方法...
我有一个类似的问题,并这样解决:
import Configurations as this
'''Configurations.py'''
if __name__ == '__main__':
this.conf01()
'''Test conf'''
def conf01():
print ("working")
因此,我可以在文件顶部更改目标配置。 诀窍是将文件导入自身。
luke8800gts answered 2020-07-21T01:28:42Z
0 votes
使用多处理模块:
from multiprocessing import Process
p1 = Process(target=function_name, args=(arg1, arg2,))
p1.start()
Neeraj Bansal answered 2020-07-21T01:29:02Z
python helper函数_使函数定义以python文件顺序独立相关推荐
- c语言程序 中断函数示例,单片机_C语言函数_中断函数(中断服务程序)
c语言中的中断函数注意事项 单片机_C语言函数_中断函数(中断服务程序) 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该 ...
- python 不定参数_人生苦短,我学不会Python。——函数中不定长参数的写法
定义函数 我们可以定义一个实现自己想要的功能的函数.Python定义函数以def开头,定义函数基本格式如下: def 函数名 (参数列表):"函数_文档字符串"函数体 return ...
- 带参函数_更好的理解Python第五弹函数预处理与指针
编译预处理 预处理概念:在编译之前进行处理 在C语言中,预处理行为宏定义,文件包含,条件编译 指令 用处 # 无 #define 定义一个宏 #undef 取消定义一个已经定义的宏 #include ...
- python fact函数_第5天:Python 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,所以我经常说函数是程序员规模化使用的基础. 函数能提高应用的模块性,和代码的重复利用率.在程序设计中,常将一些常用的功能模块编写成函数 ...
- 封装成vla函数_第四章:Python之函数
第一节:函数入门与定义函数 理解函数 所谓函数,就是为一段实现特定功能的代码"取"个名字,以后即可通过该名字来执行(调用)这段代码 从逻辑上看,函数相当于一个黑匣子 定义函数的语法 ...
- python 惰性序列_菜鸟学飞自学Python(五)高阶函数
(仅个人学习摘抄) 函数式编程 函数式编程就是一种抽象程度很高的编程范式,特点是允许把函数本身作为参数传入到另一个函数,还允许返回一个函数. 高阶函数 高阶函数--Higher-order funct ...
- python求极限_数学——函数极限知识以及sympy库的limit
函数极限与Sympy库 欢迎访问我的博客 这部分可以参考sympy库中的limit 在$z_0$点处计算$e(z)$函数的极限 \(\lim_{z \to z_0} e(z)\) = limit(e, ...
- python虚函数_虚函数和纯虚函数的区别
首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...
- python纯函数_理想国真恵玩Python从入门到精通第006天_纯函数写游戏管理系统
原标题:理想国真恵玩Python从入门到精通第006天_纯函数写游戏管理系统 前面已经带大家学习了函数,高级数据类型,比如说字典,今天带大家用函数加字典做一个游戏管理系统,希望大家喜欢.废话不多说,直 ...
最新文章
- GitHub开源的AI下五子棋(基于博弈树极大极小值alpha-beta剪枝搜索)
- 如何配置Linux的时钟同步
- 【译】 Google: Still in The Search 搜索巨人Google的伟大转变 (二)
- 程序设计基础(c语言),程序设计基础(C语言)
- RPC 【Remote Procedure Call】 原理
- 实现strstr库函数功能
- Android的学习之路(三)项目的启动过程和安装过程具体解释
- awk教程入门与实例练习(三)
- NUS 联合 Sea AI Lab 发表 Multi-view Pose Transformer,完全端到端学习,超强可扩展性...
- mysql binlog ignore db_MySQL binlog_ignore_db 参数最全解析
- 软件工程项目之Windows Phone Application的一个设想
- sqli-labs Less-11 and Less-12
- 如何从云桌面(远程桌面)拷贝文件
- 八大数据分析模型之——用户模型(一)
- android+6+wifi密码,Android 如何查看Wifi密码
- linux 防火墙reject,CentOS 防火墙配置与REJECT导致没有生效问题
- Android 根据应用内选择时间调整TextClock时区
- Windows桌面美化(壁纸网站,任务栏透明、颜色设置)
- xlsx表格怎么筛选重复数据_excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法...
- 游戏语音聊天系统完美运营源码,附详尽视频教程
热门文章
- linux ftp登录530错误,Linux系统中用ftp连接530错误怎么办
- android开发查漏补缺图
- 如何解压tar.gz文件或是.gz文件
- 图像处理-opencv去水印(如有图片侵权,请及时联系)
- 2009年必看十大动漫游戏改编电影
- 遥感影像处理的几个概念
- SQLite源代码分析----------分词器②
- P3646 [APIO2015]巴厘岛的雕塑
- python安装方法3.8.2_Python 3.8.2详细图文安装教程(附安装包) | 我爱分享网
- laravel 开发辅助工具