Python Decorator 裝飾器
裝飾器是Python提供的語法糖,常常用來將函式加入一些固定功能也會拿來將函式註冊成特殊功能 基本語法1234567891011121314def decorator(func): def wrapper(): print("開始執行") result = func() print("結束執行") return result return wrapper@decoratordef a_function(): print("這是一個函數")a_function() 回傳結果: 123開始執行這是一個函數結束執行 讓我來解說一下這是如何運作的: 解說首先,你可以將裝飾器理解為一個「有固定形式」的函數工廠可以將你的函數加上一些固定的功能 外部傳入當你在你的函數上加上@decorator的時候,你做的事是將a_function函數物件傳進decorator()所以以下兩種寫法是等價的 123456789101112def...
恆星
旋轉著,你緩慢凝聚散落星塵的火熱之心,壓縮成佈滿虛空之星點中的一枚盤旋的天體也順從引力的低語繞行,安靜無聲 熾熱著,你燃燒生命豔麗的火光四散而出你是詩與歌永恆不棄的譬喻一如如陽光般燦爛?不你就是光與熱的主角 膨脹著,你邁向餘暉一如詩人所云:切莫溫馴地步入良夜白晝將盡,暮年更當咆哮燃燒怒吼吧,怒吼地對抗那將逝之光 四散如雲,抑或劇烈炸開取決你質量的野心儘管你足夠堅強,也將走向無聲無色的漆黑深淵光、時間與靈魂安息的黑洞 今天去天文館班遊,作業是一份報告跟一首新詩然後我就寫了這一篇小品不算很好啦 中間引用了星際效應裡面出現的詩文,是是英國詩人狄蘭湯瑪斯的⟪Do Not Go Gentle into That Good Night⟫第一次看到出現在電影裡,會覺得到底在幹嘛,但慢慢接近電影尾聲的時候又有不同的感受而且這首詩也是描寫暮年的時候,很適合放在恆星開始膨脹準備爆炸的地方
景美人權園區參觀
昨天因為同學有哲學課的作業,需要去參觀景美人權園區,所以我也陪他去參觀其實我就住在景美附近,但從來沒去過他是新店二十張景美軍事看守所改建而成的許多白色恐怖重大案件都在此審判我們這次只是蜻蜓點水走完園區而已,但實際帶給我的震撼真的很大 法庭第四法庭在門口不遠的是第四、五法庭和偵訊庭基本上就是一個簡單的小房間,但是想到這幾個房間帶給當時的人多大的恐懼就會覺得很不安 [{"url":"偵訊庭.jpeg","alt":"偵訊庭"},{"url":"第四法庭.jpeg","alt":"第四法庭"}] 左圖是偵訊庭,當時的犯人是站著被審問的常有3位檢警24小時不間斷審問的情事發生,現在是絕對禁止的 第一法庭走進去的時候有一種很莊嚴的感覺這裡就是當年美麗島事件審判的地方,也是課本上常常出現的圖片 [{"url":"美麗島審判現場.jpeg","alt":"美麗島審判現場"},{"url":"美麗島審判現場2.jpeg","alt":"美麗島審判現場2"}] ...
(四) 播放音樂(目前不可用)
今天要來教怎麼做簡單的播放音樂功能啦自己研究的時候本來還覺得很困難,後來也發現其實很簡單今日都以Cog內的寫法為主喔 準備今天會用到神奇的下載模組pytubefix用fix是因為原本的失效了,作者好像也沒有要更新 1pip install pytubefix 還有discord的小小附加套件(嗎)我也不太確定是什麼東西,反正裝就對了 1pip install discord.py[voice] 再來就是超級常用的ffmpeg,自行下載只要放在機器人資料夾內就可以了,推薦路徑為從bot.py出發ffmpeg/bin/ffmpeg.exe 加入和離開頻道加入123456789101112131415161718@commands.command()async def join(self,ctx) # 從機器人的所有語音連線中取得本伺服器的連線 # utils是Discord附送的小功能,與機器人操作沒有任何關係 voice = discord.utils.get(self.bot.voice_clients, guild=ctx.guild) #...
印度餐廳-淇里思
這兩天去新竹玩,晚上吃了一家印度料理但這家店真的很讚一進去就看的到滿滿印度風格的裝潢,有夠讚 [{"url":"裝潢.jpg","alt":"裝潢"},{"url":"裝潢2.jpg","alt":"裝潢"}] 我點了雙人套餐,有一些菜色可以自選,都很讚 瑪莎拉脆薄片捲 Masala Papad Cone瑪莎拉應該是一個香料組合的稱呼,這個餅裡面包了生洋蔥和番茄加上瑪莎拉,算是清爽的開胃小菜 印式扁豆湯 Dal Soup有點像南瓜湯一樣碎碎的,但是是豆子的口感,沒有特別的味道 奶酪炭烤雞塊 Malai Tikka雞肉很大塊,沒有骨頭,咬下去很過癮有種淡淡的奶味,不會膩 這是我爸媽點的綜合,紅色的應該叫做香料塔都(Chicken Tikka),有點辣 黃醬雞肉咖哩 Chicken Curry跟一般的咖哩不太一樣,可以吃到香料的感覺,味道很重但是不會膩學校營養午餐的螢光咖哩是什麼屎 配上原味印度烤餅,完全超級配我宣布咖哩拌和不拌的問題,解法就是印度烤餅 終於吃到異世界悠閒農家裡面的那個饢naan了 辣味印度烤餅...
用Github Action做出動態個人檔案
前幾天正在製作Github的個人檔案,想弄酷一點,偶然接觸了Github Action由於個人檔案的README.md是一個repo,所以其實可以透過這個方式來動態更新Action可以自動化執行終端指令,所以只要設定抓取資料再寫上去就好了 我以抓取氣象局的天氣簡述為例,利用Python執行抓取資料並編輯檔案後Commit本筆記只提供特定目標做法,不解釋整個Action原理 本篇筆記比較複雜難寫,有問題或錯誤歡迎留言成品在這 前置設定 請先準備好Github token,並在該repo新增一個secret,名為TOKEN 請先準備好需要使用的API與Python程式碼,確認其可抓取資料後變更同資料夾內的README.md,並上傳到repo API的Token也可新增至secret內 前往repo >> Settings >> 側邊欄Actions >> General >> Workflow permissions,切換成Read and write...
(三)Cog結構
哈囉各位今天要來教一個新的概念: CogCog有點像是模組,可以將一系列的功能分類到一個獨立檔案內 基本結構123456789import discordfrom discord.ext import commandsclass MyCog(commands.Cog): def __init__(self,bot:commands.Bot): self.bot = botasync def setup(bot): await bot.add_cog(MyCog(bot)) Cog使用類別方式來儲存觸發條件與指令,所以首先須定義一個類別,名稱自訂Discord引入Cog時須使用commands.Cog類別的屬性,所以繼承該類別,並且需初始化bot屬性最後檔案末端定義如上所示的setup函數即可完成基本Cog結構上列的程式碼為必須加入,每個區塊缺一不可 指令接著來示範如何加入指令需先閱讀此篇了解如何定義指令擷取上一部分的程式碼作範例 1234567class MyCog(commands.Cog): def...
跟我媽去整復按摩遇到狗勾
今天跟我媽去整復推拿他一直說她全身痛,然後他高中同學就推薦一家在桃園的店反正,重點就是,有狗勾 我不知道他的名字,但是我一進來他就來聞我然後就待在我旁邊還給我摸我以後要養一隻狗 [{"url":"1.jpg","alt":""},{"url":"2.jpg","alt":""},{"url":"3.jpg","alt":""},{"url":"4.jpg","alt":""}]
(二) 指令與觸發事件
接續上一篇 基礎bot.py今天要來教各位簡單的指令和條件觸發 今日的內容寫在前一篇介紹的兩個區塊中間喔 指令首先是非常基礎的結構 123@bot.command()async def command(ctx,arg): await ctx.send() 這裡仔細介紹一下各部分 @bot.command()使用裝飾器的方式登錄此函式為一個可呼叫的指令凡是文字指令前面都需要加此裝飾器 async def command()此處為函式定義,函式名稱即為指令名稱以此段程式為例,到時候可用>command呼叫 ctx每一個指令函式都必須有此參數Discord會使用此參數傳入包含該指令被呼叫時的所有資訊組成的物件其本體為discord.ext.commands.Context如:ctx.channel = 發送該指令的頻道物件ctx.author = 發送該指令的使用者物件ctx.send() =...
(一) 基礎bot.py
阿囉哈各位,我現在要進入高產模式今天要來教各位怎麼從頭開始寫一個機器人 值得注意的是,此系列文章非單一課程,建議一次跟著學完而非單看一篇文章因為會有許多地方是為後續作準備當然我也會特別標記有這類情形的地方: 後續會更動 此系列從程式出發,請自行準備好機器人與Token 準備創建一個資料夾並安裝套件: 1pip install discord.py 基礎bot.py在資料夾內新增bot.py檔案接著就來看如何建立機器人 123456789101112# 此區段一律放在整個檔案最開始,但import部分可依據需求修改import discordfrom discord.ext import commandsimport asyncio# 設定機器人可以做的事# Discord特殊規定,可以不用特別了解intents = discord.Intents.all()# 定義機器人物件bot = commands.Bot(command_prefix=">",intents =...