子產品
什麼是子產品
什麼是子產品(python–核心概念)
1.每一個以擴充名.py結尾的python源代碼都是一個子產品
2.子產品就好比是工具包,要想使用這個工具包中的工具,就先導入這個子產品
3.在子產品中定義的全局變量,函數,類 都是提供給外界直接使用的工具
4.變量名/函數名/類名/方法名(标示符) 需要符合标示符号的命名規格
子產品導入的兩種方式
import time
time.sleep()
time.time()
time.ctime()
import math
math.pi
math.pow(2,3)
官方第三方子產品
第三方庫–>子產品(從網上下載下傳)
import os
import random
import string
random.random()
random.randint(1,4)
random.choice('hello')
random.sample(string.ascii_letters + string.digits,4)
random.shuffle(list(range(1,10)))
import functools
functools.reduce(lambda x,y:x+y,range(10))
python API
itchat子產品導入,給手機助手發消息和統計微信好友的男女比列
import itchat
#hotReload=True,會保留登陸狀态,在短時間内重新登陸不用
#再次掃描二維碼
itchat.auto_login()
1.給手機助手發送消息
while True:
#itchat.send('hello',toUserName='filehelper')
itchat.send_file('/etc/passwd',toUserName='filehelper')
#2.統計你的好友的男女比例
friends = itchat.get_friends()
#print(friends)
info={}
for friend in friends[1:]:
if friend['Sex'] == 1:
info['male'] = info.get('male',0) + 1
elif friend['Sex'] == 2:
info['female'] = info.get('female',0) + 1
else:
info['other'] = info.get('other',0) + 1
print(info)
利用圖靈機器人時刻監控微信好友的消息并給予回複
import itchat
import requests
def get_tuling_reponse(_info):
#print(_info)
api_url = 'http://www.tuling123.com/openapi/api'
data ={
'key':'d6cdfe1757a044d7b6370927acebc297',
'info':_info,
'userid':'haha'
}
# 發送資料到指定網址,擷取網址傳回的資料
res = requests.post(api_url,data).json()
#print(res,type(res))
# 給使用者傳回的内容
print(res['text'])
return res['text']
#get_tuling_reponse('給我講個笑話~')
#get_tuling_reponse('給我講個故事')
#get_tuling_reponse('cat')
#時刻監控好友發送的文本消息,并且給予一個回複
#isGroupChat=True 接收群聊消息
#注冊響應事件,消息類型為itchat.content.TEXT,即文本消息
@itchat.msg_register(itchat.content.TEXT,isFriendChat=True)
def text_reply(msg):
# 擷取好友發送的文本消息
# 傳回同樣的文本消息
content = msg['Content']
# 将好友的消息發送給機器人去處理,處理的結果就是傳回給好友的消息
returnContent = get_tuling_reponse(content)
return returnContent
itchat.auto_login()
itchat.run()
通過手機助手發送shell指令,執行後傳回參數
import os
import itchat
#在python中執行shell指令
#1.第一種方式:可以判斷指令是否執行成功;
#傳回值為0,執行成功
#傳回值不為0.執行是失敗
#os.system('ls')
#res = os.system('hostnamess')
#print(res)
#2.第二種方式 用來儲存指令的執行結果的
#res = os.popen('hostname').read()
#print(res)
@itchat.msg_register(itchat.content.TEXT,isFriendChat=True)
def text_reply(msg):
"""
需求:當我們的檔案助手發送消息的時候,執發送的内容
1.如果執行成功,顯示執行結果
2.如果執行失敗,顯示執行失敗
:param msg:
:return:
"""
if msg['ToUserName'] == 'filehelper':
# 擷取要執行的指令的内容
command = msg['Content']
# 讓電腦執行指令代碼
# 如果執行成功,傳回值是0
if os.system(command) == 0:
res = os.popen(command).read()
result = '[傳回值]-指令執行成功,執行結果:\n' + res
itchat.send(result,'filehelper')
# 如果指令執行失敗
else:
result = '[傳回值]-指令%s執行失敗,請重試' %(command)
itchat.send(result,'filehelper')
itchat.auto_login()
itchat.run()
給指定好友發送消息
import itchat
#給指定好友發送消息
itchat.auto_login(hotReload=True)
#根據好友昵稱查找好友的資訊,傳回值是一個清單,有多個元素
res = itchat.search_friends('劉玉')
#print(res)
#通過索引擷取該好友的詳細資訊
ly = res[0]['UserName']
while True:
itchat.send('python',toUserName=ly)
python還有很多好玩的子產品 讀者可以自己查找資料進行試驗
子產品和包的總結
一、子產品導入
1. 定義
Python 子產品(Module),是一個 Python 檔案,以 .py 結尾,包含了 Python 對象定義和Python語句。
子產品讓你能夠有邏輯地組織你的 Python 代碼段。
把相關的代碼配置設定到一個子產品裡能讓你的代碼更好用,更易懂。
子產品能定義函數,類和變量,子產品裡也能包含可執行的代碼。
包括:内置子產品,自定義子產品,第三方子產品;
2. 作用
-
最大的好處是大大提高了代碼的可維護性。其次,編寫代碼不必從零開始。
當一個子產品編寫完畢,就可以被其他地方引用。我們在編寫程式的時候,也經常引用其他子產品,
包括Python内置的子產品和來自第三方的子產品。
-
使用子產品還可以避免函數名和變量名沖突。
相同名字的函數和變量完全可以分别存在不同的子產品中,
是以,我們自己在編寫子產品時,不必考慮名字會與其他子產品沖突。
但是也要注意,盡量不要與内置函數名字沖突。
3. 子產品導入
import
import導入子產品執行的操作:
- 産生一個新的名稱空間;
- 在建立的名稱空間倆面執行子產品(.py)的内容
- 拿到了一個子產品名, 執行子產品檔案産生的名稱空間.
###import … as …
對于導入的子產品重命名
###from … import …
from … import … as …
從子產品裡面導入函數, 變量, 裝飾器等…
##4. 解決問題
問題: 導入子產品時, 子產品裡面執行代碼結果也會顯示
解決方法:
name, 所在檔案沒有當作子產品導入是, 結果為__main__;
name, 所在檔案被當作子產品導入是, 結果為子產品的名稱;
#判斷子產品是否被導入, 如果沒有被導入, 則執行下面的代碼.
if name == “main”:
print(“這是寫好的子產品裡面的顯示…”)
print(timeit(hello))
print(name)
##5. __all__決定用來控制from xxx import *導入的内容
##6. 子產品的分類
- 内置子產品(random, string…)
- 自定義子產品(自己寫的子產品)
- 第三方子產品(别人寫好的子產品)
##7. 如何安裝第三方子產品
- pip3 install 子產品名