python基礎--模塊

一、模塊是一個包含全部你定義的函數和變量的文件,其後綴名是.py。python

  模塊能夠被別的程序引入,以使用該模塊中的函數等功能。這也是使用 python 標準庫的方法。app

  例子:sys.argv 是一個包含命令行參數的列表函數

import sys
 
print('命令行參數以下:')
for i in sys.argv:
   print(i)
 
print('\n\nPython 路徑爲:', sys.path, '\n')

 

二、導入本身寫的模塊importui

  定義test.pyspa

def method():
    print("method...")

  定義hello.py.net

import test
 
test.method()

  test.py和hello.py在同一目錄下,執行python .\hello.py,報錯 ModuleNotFoundError: No module named 'test'命令行

 

  import導入模塊時的搜索路徑code

    打印sys.path結果:blog

    - Python 路徑爲: ['D:\\DevTools\\python-3.7.4-embed-amd64\\python37.zip', 'D:\\DevTools\\python-3.7.4-embed-amd64']ip

    - sys.path 輸出是一個列表,第一項是空串,表明當前目錄;我本地安裝的Python的sys.path第一項不是空串

 

  瞭解了搜索路徑的概念,就能夠在腳本中修改sys.path來引入一些不在搜索路徑中的模塊:sys.path(環境變量)

   修改hello.py

import sys
sys.path.append("D:\python\demo")
import test
 
test.method()

 

三、from … import 語句

  from modulename import  name1, name2...

  from modulename import *

 

四、__name__屬性

  __name__: 每一個模塊都有一個__name__屬性,當其值是'__main__'時,代表該模塊自身在運行,不然是被引入。

 

五、dir()函數

  內置的函數 dir() 能夠找到模塊內定義的全部名稱。以一個字符串列表的形式返回:

  print(dir(test))結果:['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'method']

 

六、包

 

  hello.py

import sys
sys.path.append("D:\python\demo")
import a.b.test
 
a.b.test.method()

  test.py

def method():
    print("method...")

  經過import a.b.test這樣導入模塊,使用的使用也要帶包。可使用as關鍵字將導入的模塊從新命名,好比

 

import sys
sys.path.append("D:\python\demo")
import a.b.test as test
 
test.method()

 

  還有一種導入子模塊的方法是:

import sys
sys.path.append("D:\python\demo")
from a.b import test
 
test.method()

  還有一種變化就是直接導入一個函數或者變量:

import sys
sys.path.append("D:\python\demo")
from a.b.test import method
 
method()

 

七、__all__

  從一個包中導入* ,被導入的模塊最好使用__all__來指定導入的內容(好比函數或變量)。

  test.py

__all__ = ["method", "method2"]

def method():
    print("method...")
def method2():
    print("method2...")

def main():
    method()
    method2()

if __name__ == '__main__':
    main()

  hello.py

import sys
sys.path.append("D:\python\demo")
from a.b.test import *
 
method()
method2()

 

八、__init__.py和__all__的使用

 

   __init__.py

__all__ = ["test"]
from . import test

  test.py

__all__ = ["method", "method2"]

def method():
    print("method...")
def method2():
    print("method2...")

def main():
    method()
    method2()

if __name__ == '__main__':
    main()

  main.py

import sys
sys.path.append("D:\python\demo")

# import a
# a.test.method()

from a import *
test.method()
相關文章
相關標籤/搜索