echo $VAR 有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR? 答: 不可以。 但是有几种可能的解决办法。...在调用 shell 的上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是在脚本中打印设置环境变量的命令.../set-vars2.sh)" $ echo "$FOO" BAR 在终端上执行 help export 可以查看 Bash 内置命令 export 的帮助文档: # help export export...-f 指 shell 函数 -n 从每个(变量)名称中删除 export 属性 -p 显示所有导出变量和函数的列表 ---- 参考: stackoverflow question 16618071...help eval 相关阅读: 用和不用export定义变量的区别 在shell编程中$(cmd) 和 `cmd` 之间有什么区别 ----
对于正常我们在编程中,尤其在python中,各函数之间正常来说都是可以相互调用的,如果发现函数无法调用另一个函数的情况,正常来说会有多种方面的原因。下面的问题我们可以一起看看。...1、问题背景在 Python 中,有时会遇到函数无法调用另一个函数的问题。这通常是由于函数内部的 return 语句导致的。return 语句的作用是终止函数的执行并返回一个值给调用者。...在下面的例子中,right_room() 函数中将 opening() 函数的调用移动到了 return 语句之前,这样 opening() 函数就可以被正确调用了。...除了移动函数调用的位置,还可以通过使用异常处理来解决这个问题。在下面的例子中,right_room() 函数使用了 try 语句来捕获 opening() 函数可能抛出的异常。...上面就是今天的全部内容了,如果您遇到了函数无法调用另一个函数的具体问题,可以提供更多的细节或代码示例,以便我可以更具体地帮助您解决问题。
另一方面,在 Python 中,没有main()函数的概念,因为它是一种基于解释器的语言,同样可以在交互 Shell中使用。 扩展名为.py的 Python 程序文件包含多个语句。...程序文件可以通过以下方式执行: 使用命令提示符/终端将 Python 文件作为脚本执行。...使用 Import 语句将 Python 代码从一个文件导入到另一个文件 C:\Python37> python addition.py Enter the first number to add: 3Enter...这里我们可以使用特殊变量__name__来检查addition.py文件的作用域和执行语句,只有当它从命令提示符/终端独立执行时,而不是当它被导入到其他文件/模块中时。...因此,name的值允许 Python 解释器确定模块是否是可执行脚本。如果其值为main,将执行函数定义之外的语句。如果没有,模块的内容将被填充到顶层模块(或解释器名称空间)中,而不包含可执行部分。
如果我们给客户制作网站,客户会发送过来一堆的图片,这些图片一般都是通过手机或者数码相机拍摄的。有一个问题就是这些图片会比较大。那我们就需要对这些图片进行压缩的处理,这就是我写的这个脚本的实际用途。.../usr/bin/env python3 # -*- coding: UTF-8 -*- import argparse import os import imghdr from PIL import...simg_w = simg.size[0] simg_h = simg.size[1] # 如果原图片宽高均小于设置尺寸,则将原图直接复制到目标目录中...代码解析 首先,要写命令行的脚本,就需要处理各种各样的参数,所以,argparse 库是必不可少的 Python os 库对文件夹的常见用法 # 判断目录是否存在 os.path.exists(__dir...__) # 判断文件是否存在 os.path.isfile(__file__) # 判断路径是否为文件夹 os.path.isdir(__path__) # 创建多层文件夹(也可以创建单层文件夹) os.makedirs
那么,让我们了解一下 Python 中的执行模式 Python 执行模式 有两种主要方法可以告诉 Python 解释器执行代码: 最常见的方法是将文件作为 Python 脚本执行 通过将必要的代码从一个...Python 文件导入到另一个文件 无论我们选择哪种执行模式,Python 都会定义一个名为 __name__ 的特殊变量,其中包含一个字符串。...为了解决这个问题,Python 有一个特殊的内置变量,称为 __name__,可以根据运行或执行脚本的方式,此变量会被分配字符串 __main__。...这样,我们将要运行的代码放在 main() 中,将编程逻辑放在一个名为 demo 的函数中,并在条件块中调用 main()。...因此,从 main() 中调用其他函数以将整个任务从可以独立执行的较小子任务中组合起来总是较好的选择。
模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法,我们可以把写好的一些可复用的函数,封装成模块然后发布到Python的本地库中。...from…import 语句 Python的from语句可以让你从模块中导入指定的函数或变量到当前的脚本中,语法如下: from modname import name1[, name2[, … nameN...from…import* 语句 把一个模块的所有内容全都导入到当前的脚本中是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目。...) print("我被作为另一个脚本中的一个模块运行") 运行结果: _main_ 程序自身在运行 如果在另一个脚本中被当做一个模块执行时,_name_ 属性的值就不会为_main_:...#filename:Hello.py import TestMould # 被作为另一个脚本的导入模块执行时,主程序的名称为模块的名称 运行结果: TestMould 我被作为另一个脚本中的一个模块运行
下面是一个示例代码: if __name__ == '__main__': main() 下面,我们将向你展示如何使用这个变量在Python中创建模块。 为什么使用__name__变量?...__name__ 变量(前后两个下划线)是一个特殊的Python变量。它的值取决于我们如何执行包含它的脚本。 有时候,在编写的脚本中包含的函数可能在其他脚本中也很有用。...在Python中,你可以将该脚本作为模块导入到另一个脚本中。 由于这个特殊的变量,你可以决定是否要运行脚本。或者希望导入脚本中定义的函数。 __name__变量包含哪些值?...打印出 __main__ 的值。 场景2:在另一个脚本中导入脚本 如果我们想在另一个脚本中重用myFunction,例如 importingScript.py。...在下图中,你会看到它与第一个例子的不同之处。 ? 在importingScript.py中,将 __name__ 变量设置为 __main__。
这些模块可以包含函数、变量、类等。当我们运行一个 Python 脚本时,Python 解释器会执行该脚本中的代码。但是,有时我们也会将一个模块导入到其他脚本中,以便在其他地方重用其中的功能。...但如果我们在另一个 Python 脚本或 Jupyter Notebook 中导入了 test 模块,则不会看到 This code runs when test.py is directly executed...但如果该文件被导入到另一个文件中,__name__ 的值则是文件名(Python 文件本身的名称去掉 .py 后缀),比如这里的 test。...注意事项 : 模块导入和执行顺序:在 Python 中,当一个脚本作为主程序执行时,它会从上到下按顺序执行。...为了避免命名空间冲突,尽量将变量和函数封装在类或函数内部,而不是直接在全局作用域中定义。
简单来说,模块是一个由Python代码组成的文件。模块可以定义函数,类和变量。 模块还可以包括可运行的代码。...2.from…import语句 Python from 语句允许将模块中的特定属性导入到当前的命名空间中。...这提供了将所有项目从模块导入到当前命名空间中的简单方法; 但是,这个说法应该谨慎使用。 4.执行模块作为脚本 在模块中,模块的名称(作为字符串)可用作全局变量 __name__ 的值。...如果locals()从一个函数中调用,它将返回从该函数本地访问的所有名称。 如果从函数中调用globals(),它将返回从该函数全局访问的所有名称。 这两个函数的返回类型是字典。...因此,可以使用 keys() 函数提取名称。 10.reload()函数 当将模块导入到脚本中时,模块的顶级部分的代码只能执行一次。
参考链接: Python中的numpy.fv ''' 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。...为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。...输出是一个列表,其中第一项是空串'',代表当前目录(若是从一个脚本中打印出来的话,可以更清楚地看出是哪个目录),亦即我们执行python解释器的目录(对于脚本的话就是运行的脚本所在的目录)。...''' ''' 还有一种导入的方法,可以使用 import 直接把模块内(函数,变量的)名称导入到当前操作模块。...大多数情况, Python程序员不使用这种方法,因为引入的其它来源的命名,很可能覆盖了已有的定义。\n' # __name__属性 ''' 一个模块被另一个程序第一次引入时,其主程序将运行。
Python3 初学实践案例(12)将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用) 如果我们给客户制作网站,客户会发送过来一堆的图片,这些图片一般都是通过手机或者数码相机拍摄的...有一个问题就是这些图片会比较大。那我们就需要对这些图片进行压缩的处理,这就是我写的这个脚本的实际用途。...正常以及报错状态 代码解析 首先,要写命令行的脚本,就需要处理各种各样的参数,所以,argparse 库是必不可少的。...关于这个库的使用,可以看下我学习 python 的第三篇博文的详细介绍《argparse 命令行参数库的使用》 ,这里我就不详细说明了。...__path__) 更多可以查看文档 https://docs.python.org/3/library/os.path.html 关于图片处理,可以查看 python pil 的官方文档 http:/
参考链接: 了解Python 3中的代码重用和模块化 在程序中定义函数可以实现代码重用。但当你的代码逐渐变得庞大时,你可能想要把它分割成几个文件,以便能够更简单地维护。...同时,你希望在一个文件中写的代码能够被其他文件所重用,这时我们应该使用模块(module)。 一、导入模块 在Python中,一个.py文件就构成一个模块。...一个模块中的定义可以导入(import)到另一个模块或主模块。 ...当我们将一个模块导入到当前模块时,只有被导入模块的名称被放入当前模块的全局符号表里,所以我们不用担心变量名发生冲突。 ...into another module >>> 四、dir() 函数 在Python3基础六中我们提到,可以通过内置dir()函数查询一个类或者对象的所有属性。
这个 __name__ 拿来做什么的? 作为 Python 的内置变量,__name__变量(前后各有两个下划线)还是挺特殊的。...它是每个 Python 模块必备的属性,但它的值取决于你是如何执行这段代码的。 在许多情况下,你的代码不可能全部都放在同一个文件里,或者你在这个文件里写的函数,在其他地方也可以用到。...为了更高效地重用这些代码,你需要在 Python 程序中导入来自其他文件的代码。 所以,在__name__ 变量的帮助下,你可以判断出这时代码是被直接运行,还是被导入到其他程序中去了。...情况 2 - 从其他脚本里导入 如果你需要在其他脚本里重用这个 myFunction() 函数,比如在 importingScript.py 里,我们可以将 nameScript.py 作为一个模组导入...现在 nameScript 模块中的函数定义已经被导入到当前的作用域中,于是我们通过 ns.myFunction() 的方式调用模块中的函数,这个函数返回的是模块内的变量的值 'nameScript'。
它是每个 Python 模块必备的属性,但它的值取决于你是如何执行这段代码的。 在许多情况下,你的代码不可能全部都放在同一个文件里,或者你在这个文件里写的函数,在其他地方也可以用到。...为了更高效地重用这些代码,你需要在 Python 程序中导入来自其他文件的代码。 所以,在 __name__ 变量的帮助下,你可以判断出这时代码是被直接运行,还是被导入到其他程序中去了。...当你直接执行一段脚本的时候,这段脚本的 __name__变量等于 __main__,当这段脚本被导入其他程序的时候,__name__ 变量等于脚本本身的名字。 下面,让我举两个栗子来说明一下: ?...情况 2 - 从其他脚本里导入 如果你需要在其他脚本里重用这个 myFunction() 函数,比如在 importingScript.py 里,我们可以将 nameScript.py 作为一个模组导入...现在 nameScript 模块中的函数定义已经被导入到当前的作用域中,于是我们通过 ns.myFunction() 的方式调用模块中的函数,这个函数返回的是模块内的变量的值 nameScript 。
Python中的基本main()函数 一些Python脚本中,包含一个函数定义和一个条件语句,如下所示: 此代码中,包含一个main()函数,在程序执行时打印Hello World!。...更多关于Python条件语句的信息可以由此获得。 这种代码模式在Python文件中非常常见,它将作为脚本执行并导入另一个模块。...Python中的执行模式 Python解释器执行代码有两种方式: 通过命令行方式执行Python脚本。 将代码从一个文件导入另一个文件或者解释器。 更多内容可参考如何运行Python脚本。...第三个print()会先打印短语The value name is,之后将使用Python内置的repr()函数打印出name变量。 在Python中,repr()函数将对象转化为供解释器读取的形式。...前两行由于没有变量,在输出方面与在命令行上作为脚本执行时完全相同。但是第三个输出存在差异。 当Python解释器导入代码时,name的值与要导入的模块的名称相同。您可以通过第三行的输出了解这一点。
简单地说,模块就是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码。...---- From…import* 语句 把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目...返回的列表容纳了在一个模块里定义的所有模块,变量和函数。...当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。...比如想重载hello模块,如下: reload(hello) 1 Python中的包 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的Python的应用环境。
当Python解析器读源代码文件时,会做如下两件事情: 设置特殊变量,如__name__; 执行源代码文件中的所有代码; 现在我们将焦点放到__name__变量上来,看看在Python程序中为什么要使用...在这个案例中,我们关心的是__name__变量。如果将Python脚本文件作为主程序运行,也就是通过下面的命令运行foo.py。...您可能想要在代码示例侧面打开另一个窗口,以便您可以按照以下说明进行操作。...这样就会调用functionA和functionB函数,从而输出 "Function A" 和 "Function B 10.0" 如果foo.py脚本不是作为主程序运行,而是被另一个程序导入,则__name...关于__name__的一些疑问 有的同学问,在脚本文件中可以有多个__name__校验代码块吗?
From…import* 语句 把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目...命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。 一个Python表达式可以访问局部命名空间和全局命名空间里的变量。...Python会智能地猜测一个变量是局部的还是全局的,它假设任何在函数内赋值的变量都是局部的。 因此,如果要给全局变量在一个函数里赋值,必须使用global语句。...所以名字们能用keys()函数摘取。 reload()函数 当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。 因此,如果你想重新执行模块里顶层部分的代码,可以用reload()函数。...你也可以在这些文件里定义Python的类,然后为这些类建一个包。