零基礎入門python3.7 ——基礎知識總結(二十八)創建自定義模塊

一。自定義模塊 

模塊就是包含python代碼的文件。 知道了這一點就可以新建模塊並使用了。建立一個hello的python文件用於封裝模塊。代碼如下:

class Person:
    def __init__(self, name, age):
        self.name = name,
        self.age = age,

class Cart:
    def __init__(self, color):
        self.color = color

接下來再新建一個文件,在此文件裏導入模塊即可使用

import demo

a = demo.Person("小張", 45)
print(a.name)
print(a.age)

('小張',)
(45,)

這就是新建一個自定義模塊的流程。 但是這樣還是存在一個問題。 即模塊寫好之後其他任何人都可以使用。那麼使用前就要保證模塊中的代碼能夠正常執行。 最簡單的辦法就是在模塊文件裏編寫測試代碼 ,只需要運行一下這個文件就可以知道模塊是否能正常運行了,

class Person:
    def __init__(self, name, age):
        self.name = name,
        self.age = age,

class Cart:
    def __init__(self, color):
        self.color = color

a =  Person("小張", 45)
print(a.name)
print(a.age)

b = Cart("red")
print(b.color)


('小張',)
(45,)
red

這樣雖然可以解決問題。 但是信的問題也隨之產生。即在別人使用這個模塊中的成員時。 模塊中的測試代碼也會執行。

import demo

a = demo.Person("小張", 45)
print(a.name)
print(a.age)

('小張',)
(45,)
red
('小張',)
(45,)

這顯然不符合實際開發的需求。 爲了解決這個問題python提供了內置的__name__變量。  這個變量的好處在於在直接運行模塊時其值爲“__main__", 而在其他程序中使用該模塊時__name__的值會變成模塊名。根據這個原理就可以做出判斷,

  • 單獨運行模塊
class Person:
    def __init__(self, name, age):
        self.name = name,
        self.age = age,

class Cart:
    def __init__(self, color):
        self.color = color

if __name__ == "__main__":

    a = Person("小張", 45)
    print(a.name)
    print(a.age)

    b = Cart("red")
    print(b.color)

('小張',)
(45,)
red
  • 在其他程序中使用模塊
import demo

a = demo.Person("小張", 45)
print(a.name)
print(a.age)

('小張',)
(45,)

模塊編寫完成是爲了提供給開發者使用的。 這樣以來變成說明文檔就變得尤爲重要。所以在模塊編寫完成後要編寫一定的說明文檔。

'''
Person類包含name和age屬性
Cart類包含color屬性
url字符串 初始值爲"https://www.baidu.cn"
'''

class Person:
    def __init__(self, name, age):
        self.name = name,
        self.age = age,

class Cart:
    def __init__(self, color):
        self.color = color

url = "https://www.baidu.cn"

if __name__ == "__main__":

    a = Person("小張", 45)
    print(a.name)
    print(a.age)

    b = Cart("red")
    print(b.color)

說明文檔添加好之後在使用模塊的時候如果不想打開模塊看說明文檔則可以使用__doc__屬性打印說明文檔

import demo
print(demo.__doc__)


Person類包含name和age屬性
Cart類包含color屬性
url字符串 初始值爲"https://www.baidu.cn"

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章