Python函數-導入模塊的順序及原理


一、模塊

什么是模塊?

       模塊實質上就是一個python文件,它是用來組織代碼的,意思就是說把python代碼寫到里面,文件名就是模塊的名稱,test.py test就是模塊名稱。

       模塊分為三種:

  • 自定義模塊
  • 內置標准模塊:python自帶的
  • 開源模塊(第三方)

       導入模塊的本質,就是把python文件拿過來執行一次。

1、import導入

      我有倆文件a.py和b.py,運行b.py,獲得a里面得內容:

name='a.py'

def func():
    print('這個是a.py里面的函數')

for i in range(5):
    print(i)
func()
import a   #import一個模塊,就是把這個模塊里的代碼執行一遍

運行結果:

0
1
2
3
4
這個是a.py里面的函數

也可起別名:

name='a.py'

def func():
    print('這個是a.py里面的函數')
import a as apy  # 起別名

print(apy.name)
apy.func()

運行結果:

a.py
這個是a.py里面的函數

 2、  if __name__=='__main__'   的運用

       # if __name__=='__main__':#在自己里執行是__name__;在別家執行是a(文件名)

name = 'a.py'
def func():
    print('這個是a.py里面的函數')

print(__name__)
if __name__ == '__main__':  # 在自己里執行是__name__;
    # 在別家執行是a(文件名)
    for i in range(5):
        func()
import a   

print(a.name)
a.func()

運行結果:

__main__
這個是a.py里面的函數
這個是a.py里面的函數
這個是a.py里面的函數
這個是a.py里面的函數
這個是a.py里面的函數
a
a.py
這個是a.py里面的函數

3、from導入,跟上面一樣一樣的 

(1)用from導入func

name = 'a.py'
def func():
    print('這個是a.py里面的函數')

print(__name__)
if __name__ == '__main__':  # 在自己里執行是__name__;
    # 在別家執行是a(文件名)
    for i in range(5):
        func()
from a import func  # 用from導入func

func()

運行結果:

a
這個是a.py里面的函數

(2)用from導入func和name

name = 'a.py'
def func():
    print('這個是a.py里面的函數')

print(__name__)
if __name__ == '__main__':  # 在自己里執行是__name__;
    # 在別家執行是a(文件名)
    for i in range(5):
        func()
from a import func, name  # 用from導入func和name

func()
print(name)

運行結果:

a
這個是a.py里面的函數
a.py

二、導入模塊的順序:
       1、從當前目錄下找
       2、從python的環境變量里面找
            import一個文件夾的時候,就是執行這個文件夾下面的__init__.py

import sys

print(sys.path)  # 環境變量
sys.path.append(r'C:\Users\79954\PycharmProjects\ssz\day5')  # r 源字符  加環境變量,加的時目錄
sys.path.insert(0, r'C:\Users\79954\PycharmProjects\ssz\day5')  # insert指定位置

運行結果:

['C:\\Users\\79954\\PycharmProjects\\ssz\\day5', 'C:\\Users\\79954\\PycharmProjects\\ssz', 'C:\\Program Files\\JetBrains\\PyCharm 2020.1.4\\plugins\\python\\helpers\\pycharm_display', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\python37.zip', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\lib', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages', 'C:\\Program Files\\JetBrains\\PyCharm 2020.1.4\\plugins\\python\\helpers\\pycharm_matplotlib_backend', 'C:\\Users\\79954\\PycharmProjects\\ssz\\day5']

     如以上運行結果所示:Pycharm也會自動幫咱加了環境,所以我們就可以導入ssz這個目錄下的任何目錄及文件了:

一個例子:

from day5 import tools    #我們就可以導入ssz下的任何一個目錄,pycharm會有提示
print(tools.test('s'))
def test(s):
    return s + 'hhhhhhh'

運行結果:

shhhhhhh

再來一個例子:

from day2 import HelloWold

運行結果:

hello word!
蔡蔡長得非常 "帥氣、高大威猛"
let'go,昌姐美麗又漂亮,因為是個“人妖”!!!

導入目錄其他方式:

import sys

# import day5
# result = day5.tools.test('ggg')  # 報錯(AttributeError: module 'day5' has no attribute 'tools')

from day5 import tools  # 這種方式沒問題
print(tools.test('ggg'))

from day5.tools import test  # 這種方式沒問題
result = test('ggg')
print(result)
def test(s):
    return s + 'hhhhhhh'

運行結果:

ggghhhhhhh
ggghhhhhhh

例子:

1,在day6目錄下建一個__init__.py,寫點內容(一般創建文件夾自帶了)
2,在day5目錄下的a.py里面import day5
__init__
結果:  import 一個文件夾時,就是執行這個文件夾下的__init__.py

1)、我們首先在day6下建一個tools.py

def test(s):
    return s + 'hhhhhhh'
def test2():
    print('ooooo')

2)然后在day5文件下建目錄文件.py

import day6
result = day6.tools.test('xxx')
day6.tools.test2()  #可多個導入
print(result)

運行結果:

__init__
ooooo
xxxhhhhhhh

三、第三方模塊安裝:

  •   python的安裝目錄
  •   python安裝目錄下面的scripts目錄

首先,得確定環境是否正常(pip --help):

 1、手動安裝

2、帶 .whl 結尾的需找到安裝路徑:pip install /Users/........

3、zip文件

  • 先解壓
  • 進入解壓目錄
  • python setup.py install

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM