timmy / 撲克牌類別設計

0 likes
0 forks
2 files
Last active 1 year ago
此 Python 程式碼定義了一個 Card 類別,用來表示撲克牌的花色 (suit) 和數字 (number)。該類別包含屬性驗證機制,以確保設定的數值符合撲克牌的標準。此外,程式碼還建立了兩張撲克牌,並透過 assert 來驗證對象的變更是否符合預期,可用於模擬撲克牌遊戲的基礎單元。
1 """
2 撲克牌
3 """
4
5
6 class Card: # 類別
7 """
8 撲克牌
9 """
Last active 1 year ago
這段程式碼結合了 Python 的 asyncio 和 threading,透過 loop.run_in_executor 在背景執行同步的 blocking_sleep(),避免阻塞 asyncio 事件迴圈。這允許 async_sleep() 在等待時仍能執行其他非同步任務,適用於需要在 asyncio 應用程式中處理阻塞性 I/O 操作(如 time.sleep())的情境。
1 import asyncio
2 import threading
3 import time
4
5 async def delayed_execution():
6 # 在這裡執行延遲後的任務
7 print("Delayed execution")
8
9 def blocking_sleep(seconds):
10 time.sleep(seconds)
Last active 1 year ago
這段程式碼使用 Python 的 threading 模組來實現非同步延遲執行。當 async_sleep(seconds) 被呼叫時,它會建立一個新的執行緒來執行 sleep() 函式,而不會阻塞主執行緒。這允許主程式繼續執行其他任務,同時在指定時間後執行 delayed_execution()。這對於需要非同步延遲執行的應用場景,如計時器或背景任務,特別有用。
1 import threading
2 import time
3
4 def delayed_execution():
5 # 在這裡執行延遲後的任務
6 print("Delayed execution")
7
8 def async_sleep(seconds):
9 def sleep():
10 time.sleep(seconds)

timmy / 使用 argparse 解析命令列參數

0 likes
0 forks
1 files
Last active 1 year ago
這段程式碼使用 Python 的 argparse 模組來解析命令列參數。它支援必填的位置參數(輸入檔案路徑)、選填的輸出檔案路徑(-o 或 --output),以及一個開關參數(-v 或 --verbose)來啟用詳細模式。這適用於 CLI 工具,使得用戶可以透過命令列提供不同的參數來控制程式行為。
1 import argparse
2
3 # 建立參數解析器物件
4 parser = argparse.ArgumentParser(description='這是一個範例程式,使用 argparse 模組解析命令列參數')
5
6 # 添加位置參數
7 parser.add_argument('input_file', help='輸入檔案的路徑')
8
9 # 添加選擇性參數
10 parser.add_argument('-o', '--output', help='輸出檔案的路徑')

timmy / Streamlit 整合 Lit Web Component

0 likes
0 forks
1 files
Last active 1 year ago
此範例展示如何在 Streamlit 應用中嵌入 Lit Web Component,而不依賴 CDN。使用 Web Components 技術,可封裝自訂 UI 元件,並透過 JavaScript 互動,適用於建立模組化的前端元件,提升 Web 應用的可維護性與重用性。
1 import streamlit as st
2 import streamlit.components.v1 as components
3
4 st.title("使用 Lit Web Component (無 CDN)")
5
6 lit_component = """
7 <script type="module">
8 class MyLitComponent extends HTMLElement {
9 constructor() {
10 super();
Last active 1 year ago
此範例展示如何在 Streamlit 應用中,透過 st.write 和 unsafe_allow_html=True 來顯示自訂物件的 HTML 格式輸出,使物件能夠以自訂的 HTML 樣式呈現。
1 import streamlit as st
2
3 class MyObject:
4 def _repr_html_(self):
5 return "<h1 style='color:blue;'>這是一個自訂物件的 HTML 表示</h1>"
6
7 obj = MyObject()
8 st.write(obj._repr_html_(), unsafe_allow_html=True)

timmy / Streamlit 超連結

0 likes
0 forks
1 files
Last active 1 year ago
此範例展示如何在 Streamlit 應用中使用 st.markdown 搭配 unsafe_allow_html=True 來插入 HTML 連結,使使用者能夠點擊超連結並在新視窗開啟指定網站。
1 import streamlit as st
2
3 st.markdown(
4 '<a href="https://www.example.com" target="_blank">點擊這裡瀏覽範例網站</a>',
5 unsafe_allow_html=True
6 )