Python包,python - 模塊,包

 2023-12-25 阅读 28 评论 0

摘要:一.模塊 定義:有些功能開發者自己無法完成(例:與操作系統打交道,時間,1000取隨機數,壓縮文件,網絡通信),需要借用已經實現的函數/類來完成這些功能模塊的分類: Python包,      1,? ?內置函數

一.模塊

  • 定義:有些功能開發者自己無法完成(例:與操作系統打交道,時間,1000取隨機數,壓縮文件,網絡通信),需要借用已經實現的函數/類來完成這些功能
  • 模塊的分類: 

Python包,      1,? ?內置函數:安裝python解釋器的時候跟著安裝的那些方法

      2,自定義模塊:你寫的功能如果是一個通用功能,那么就把它當作一個模塊

Python不同包有相同文件模塊,      3,第三發模塊/擴展模塊:沒在安裝python解釋器的時候跟著安裝的那些方法

  • 模塊的導入順序:先導入內置模塊,再導入第三方模塊,最后導入自定義模塊
  • 模塊的重命名  
import my_moudle as m
  • 導入多個模塊
# import os,my_moudle,sys  # 1 橫向導入
# PEF8規范    # 2 縱向導入
# import os
# import sys
# 所有的模塊都應該盡量放在這個文件的開頭
  • 一個模塊只會被導入一次,不管你執行了多少次import。這樣可以防止導入模塊被一遍又一遍地執行。
# import my_moudle    # 要導入一個py文件的名字,但不會加.py后綴名
# import my_moudle    # 模塊的名字必須要滿足變量命名的規范,一般情況下,模塊都是小寫開頭

二.from...import

# from my_moudle import login  # import login 知道了login這個名字,那么會在本文件中創建一個變量,指向這個模塊命名空間中的login函數
# login()     # from my_moudle 會找到my_moudle模塊,開辟一塊屬于這個模塊的命名空間,執行函數# def login():
#     print('hello world')
#   當模塊中導入的變量與方法 和 本文件中的變量重名時,那么這個名字只代表最后一次對它賦值的變量或方法
# login()# from my_moudle import login# 導入了什么 就能使用什么#  不導入的變量 就不能使用# 不導入并不意味著不存在,而是沒有建立從文件到模塊的其他名字的引用
# print(name)
  • 導入多個
# from my_moudle import login,name
# print(name)
# login()
  • 重命名
# from my_moudle import login as l,name as n
# print(n)
# l()
  • *導入模塊中的所有變量
# from my_moudle import *
# print(name)
  • __all__ = []  控制*導入的內容
#__all__ = ['login']

三.把模塊當作腳本運行

  • 運行py文件的兩種方式:
# 1 以模塊的方式運行# import my_moudle
# 2 以腳本的方式運行# 直接運行pycharm解釋器,cmd運行
# 在編寫py文件的時候
#     所有不在函數和類中封裝的內容都應該寫在
#     if __name__ == '__main__':下面

# if __name__ == '__main__': # print('路過人間,世人都善變') # print(__name__,type(__name__)) # '__main__'/'my_moudle'
# 在使用反射自己模塊中的內容的時候
# import sys
# sys.modules[__name__]

四.包

  • 導入包 相當于執行了__init__.py文件
  • 直接導入模塊
# import book.letter.bookworm
# book.letter.bookworm# import book.letter.bookworm as bookworm
# bookworm.get()# from book.letter import bookworm
# bookworm.get()
  • 絕對導入
# import sys
# sys.path.append('D:\python_worksapce\day24\模塊導入的專題練習\core')
# import main
  • 相對導入
# import sys
# lst = __file__.split('/')
# base_path = '/'.join(lst[:-2])
# sys.path.append(base_path)
# from core import main

如果使用了相對導入的模塊只能被當作模塊執行,不能被當作腳本執行

五.set去重機制

# class Employee:
#     def __init__(self,name,sex,age,partment):
#         self.name = name
#         self.sex = sex
#         self.age = age
#         self.partment = partment
#
#     def __hash__(self):
#         return hash('%s%s' % (self.name,self.sex))
#
#     def __eq__(self, other):
#         if self.name == other.name and self.sex == other.sex:
#             return True
#
# employ_lst = []
# for i in range(200):
#     employ_lst.append(Employee('alex','male',i,'python開發部'))
# for i in range(200):
#     employ_lst.append(Employee('wusir','male',i,'go開發'))
# for i in range(200):
#     employ_lst.append(Employee('taibai','male',i,'爬蟲'))
#
# employ_lst = set(employ_lst)
# # print(employ_lst)
# for Person in employ_lst:
#     print(Person.__dict__)

?

?

 


    

?

?

?

    

?

轉載于:https://www.cnblogs.com/jiujiang/p/11301518.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/194854.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息