1. 程式人生 > >Python教程10

Python教程10

Python教程10

  1.模組

    說明:前4個檔案程式碼塊分別是

error.jun_03_module1
# -*-coding:utf-8-*-
# 定義全域性變數
title = "模組1"


# 函式
def say_hello():
    print("我shi %s" % title)


#
class Dog(object):
    pass

 

error.jun_03_module2
# 全域性變數
title = "模組2"


# 函式
def say_hello():
    print("我是 %s" % title)


# class Cat(object): pass

 

error.jun_03_module3
# -*-coding:utf-8-*-
# 全域性變數
title = "模組3"


# 函式
def say_hello():
    print("我是%s" % title)


#
class Person(object):
    pass

 

error.jun_03_module4
# -*-coding:utf-8-*-
def say_hello():
    print("你好,你好,我是 say hello"
) print("小明開發的模組") say_hello() print(__name__) # 如果在本檔案中執行則結果是__main__,在匯入檔案jun_o3_import_module執行結果就 # 是error.jun_03_module4(即此檔案的模組名) #正常開發測試模組處理: if __name__=="__main__": print("本模組的測試,在匯入檔案裡不會輸出")
error.jun_03_import_module
# -*-coding:utf-8-*-
"""
模組:模組是python程式結構的一個核心概念
每一個副檔名py結尾的python原始碼檔案都是一個模組
模組名同樣是一個識別符號,需要符合識別符號的命名規則
在模組中定義的全域性變數,函式,類都提供給外界直接使用的工具
模組就好比是工具包,要使用這個工具包,就需要先匯入這個模組
""" # 模組匯入示例: # error是一個Python 包,jun_03_moduleX等是模組名 import error.jun_03_module1 import error.jun_03_module2 as Jun3 # 可以取別名,簡化操作 error.jun_03_module1.say_hello() Jun3.say_hello() dog = error.jun_03_module1.Dog() print(dog) cat = Jun3.Cat() print(cat) """ 從一個模組中,匯入部分工具,可以使用from ... import的方式 from 模組名 import 工具名 匯入所有的工具:from 模組名 import * (不推薦使用) 匯入後,不需要通過模組名.來呼叫函式,類或者全域性變數,可以直接使用 """ # 從error.jun_03_module3模組匯入say_hello方法 # 注意如果是兩個同名的函式或者類,全域性變數等,採用此方法匯入,後匯入 # 的會替換先匯入的,開發時匯入程式碼建議在檔案頂部 from error.jun_03_module3 import say_hello # from error.jun_03_module3 import say_hello as module_say_hello 衝突可以取別名區分 say_hello() # 直接使用,不需要模組名.來呼叫 # 模組的搜尋順序, # 首先會在當前的工作目錄下,搜尋指定模組,不能找到,然後搜尋系統目錄(所以,建議命名模組名不要和系統模組名重名) import random rand = random.randint(0, 10) print(rand) print(random.__file__) # 檢視匯入的random模組的位置 """ 開發中,每一個檔案都應該可以被匯入的。匯入時,檔案中所有沒有任何縮排的程式碼都會被執行一遍! """ print() print("匯入時,檔案中所有沒有任何縮排的程式碼都會被執行一遍!測試。。。") import error.jun_03_module4 print("-"*50) """ 1.針對以上問題:開發中,如果檔案有測試程式碼,而在匯入檔案中,不想執行原檔案的測試程式碼(即沒有縮排的 程式碼)可以採取__name__屬性。 2.__name__時一個內建屬性,記錄著一個字串,如果在匯入檔案裡,__name__就是模組名, 如果在被匯入檔案裡執行時__name__是__main__。這裡我們寫在error.jun_03_module4模組裡 """