Python中关于使用模块的基础知识
一个模块可以在逻辑上组织Python代码。将相关的代码到一个模块中,使代码更容易理解和使用。模块是可以绑定和借鉴任意命名属性的Python对象。
简单地说,一个模块是由Python代码的文件。一个模块可以定义函数,类和变量。模块还可以包括可运行的代码。
例子:
Python代码的模块名为aname通常位于一个名为aname.py。下面是一个简单的模块,support.py作为例子
def print_func( par ): print "Hello : ", par return
import语句:
可以通过在其他一些Python源文件执行import语句来使用任何Python源文件作为一个模块。import的语法如下:
import module1[, module2[,... moduleN]
当解释器遇到import语句,它导入(import)模块如果模块出现在搜索路径。搜索路径是一个目录列表,该解释器导入模块之前搜索。例如,导入模块hello.py,需要把下面的命令在脚本的顶部:
#!/usr/bin/python # Import module support import support # Now you can call defined function that module as follows support.print_func("Zara")
当执行上面的代码,产生以下结果:
Hello : Zara
一个模块被加载一次,不管导入的次数。这可防止模块执行发生多次导入。
from...import 语句
Python的from语句可以从一个模块中导入特定的属性到当前的命名空间。from...import 语法如下:
from modname import name1[, name2[, ... nameN]]
例如,从模块fib导入函数fibonacci,使用下面的语句:
from fib import fibonacci
此语句不导入整个模块fib到当前的命名空间;它只是介绍了fibonacci从模块fib导入模块的全局符号表列。
from...import * 语句:
它也可以通过使用下面的import语句导入从模块到当前的命名空间的所有名称:
from modname import *
这提供了导入从模块到当前的命名空间中的所有项目一个简单的方法;不过,这个语句应谨慎使用。
定位模块:
当导入一个模块,在下列序列模块由Python解释器搜索:
- 当前目录
- 如果未找到该模块,然后Python搜索在shell变量PYTHONPATH每个目录
- 如果这些方法都失败,Python会检查默认路径。在UNIX上,默认路径是正常是/usr/local/lib/python/
模块搜索路径被存储在系统模块sys作为所述的sys.path变量。在sys.path的变量包含当前目录,PYTHONPATH和相关的默认安装。
PYTHONPATH变量:
在PYTHONPATH是一个环境变量,包括目录列表中。 PYTHONPATH的语法shell变量PATH相同。
下面是Windows系统的典型PYTHONPATH:
set PYTHONPATH=c:\python20\lib;
这里是UNIX系统的典型PYTHONPATH:
set PYTHONPATH=/usr/local/lib/python
命名空间和作用域:
变量名称(标识)映射到对象。名称空间是变量名(键)及其相应的对象(的值)的字典。
Python语句可以在本地命名空间和全局命名空间访问变量。如果局部和全局变量同名,局部变量屏蔽全局变量。
每个函数都有自己的命名空间。类方法遵循相同的作用域规则为普通函数。
Python对变量是否为局部或全局进行假定猜测。它假定任何变量赋值函数中的值是局部的。
因此为了使一个函数内的值赋给一个全局变量,必须先使用global语句。
声明 global VarName 告诉Python VarName是一个全局变量。Python 停止寻找该变量的局部命名空间。
例如,我们在全局命名空间中定义的变量Money 。在该函数的Money ,我们给定Money 的值,因此Python 假定Money 为局部变量。但是,我们设定它,所以一个UnboundLocalError是结果之前访问的局部变量Money 的值。取消global语句解决了这个问题。
#!/usr/bin/python Money = 2000 def AddMoney(): # Uncomment the following line to fix the code: # global Money Money = Money + 1 print Money AddMoney() print Money
dir( ) 函数:
使用dir()内置函数返回一个包含一个模块中定义名称的字符串的排序列表。
该列表包含在一个模块中定义的所有模块,变量和函数的名称。下面是一个简单的例子:
#!/usr/bin/python # Import built-in module math import math content = dir(math) print content; 当执行上面的代码,产生以下结果: ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh']
在这里,特殊字符串变量__name__是模块的名称,__file__是从中加载的模块的文件名。
globals()和 locals()函数:
globals() 和 locals() 函数可用于返回在根据在它们被称为位置的全局和局部名称空间的名称。
如果locals()被一个函数中调用时,它会返回所有可以在局部从函数访问的名称。
如果globals()从一个函数中调用时,它会返回所有可以从全局函数进行访问的名称。
这两个函数的返回类型是字典。因此,名称可以使用keys()函数提取出来。
reload()函数:
当该模块被导入到一个脚本,在一个模块的顶层部分的代码只执行一次。
因此,如果你想重新执行的顶级代码模块中,可以使用reload()函数。reload()函数导入先前导入的模块了。reload()函数的语法是这样的:
reload(module_name)
在这里,module_name是要重装,不包含模块名字符串的模块的名称。例如,要重新加载hello模块,请执行以下操作:
reload(hello)
Python中的包:
包是用于定义由模块和子包和子子包等的单一的Python应用环境的分层文件目录结构。
考虑一个文件Pots.py在Phone目录中可用。此文件的源代码如下一行:
#!/usr/bin/python def Pots(): print "I'm Pots Phone"
类似的方法,我们具有不同功能的另两个文件具有相同的名称如上:
- Phone/Isdn.py文件有函数 Isdn()
- Phone/G3.py 文件有函数 G3()
现在,创建在Phone目录中多了一个文件__init__.py:
Phone/__init__.py
为了让所有的功能可用,当导入Phone,需要把__init__.py明确的import语句如下:
from Pots import Pots from Isdn import Isdn from G3 import G3
当添加完这些行到__init__.py,那么已经导入了Phone包所有这些类的使用。
#!/usr/bin/python # Now import your Phone Package. import Phone Phone.Pots() Phone.Isdn() Phone.G3()
当执行上面的代码,产生以下结果:
I'm Pots Phone I'm 3G Phone I'm ISDN Phone
在上面的例子我们采取示例每个文件单个函数,但可以保留文件中多个函数。还可以在这些文件定义不同的Python类,可以在包外创建那些类。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonコードをSublimeテキストで実行するには、最初にPythonプラグインをインストールし、次に.pyファイルを作成してコードを書き込み、Ctrl Bを押してコードを実行する必要があります。コードを実行すると、出力がコンソールに表示されます。

Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

メモ帳でPythonコードを実行するには、Python実行可能ファイルとNPPEXECプラグインをインストールする必要があります。 Pythonをインストールしてパスを追加した後、nppexecプラグインでコマンド「python」とパラメーター "{current_directory} {file_name}"を構成して、メモ帳のショートカットキー「F6」を介してPythonコードを実行します。
