今日の学習まとめ-----Flaskのソースコード解析とその意味

1.Pythonでの:signの使用法

names: t.Iterable[str  None] = (None.)

このコード行は、Python で型アノテーション (TypeAnnotation) を記述する方法です。このコード行では、names は変数であり、型 Iterable[strNone] として注釈が付けられます。これは、 names が、要素の型が str または None である反復可能なオブジェクトであることを意味します。
Iterable[str None] この型アノテーションは特別な書き方を使用し、na が str と None で構成される反復可能なオブジェクトになり得ることを示します。角括弧内の mestr None は、str と None の間に共用体型の関係があること、つまり、名前の要素が str または None になる可能性があることを示します。最後の = (None,) は、名前に初期値 (None,) が割り当てられることを意味します。これは、単一の要素 None を含むタプルです。
型アノテーションにより、コードの可読性と保守性が向上し、静的型チェック ツール (mypy など) で型チェックを実行して、コード内の潜在的な問題を見つけることができます。

2. コルーチンとは何ですか?

コルーチンはマイクロスレッドとも呼ばれ、スレッド内で実行されます。関数実行中はいつでも終了でき、プログラム自身で制御されます。実行効率が非常に高いです。マルチスレッドに比べてオーバーヘッドがありません。スレッドの切り替えが少なく、マルチスレッド ロック メカニズムがありません。

3. 非同期プログラミングを理解する

非同期プログラミング: county に似ていると見なされますが、システム スケジューリングは含まれません。つまり、非同期プログラムのコンテキストがシステム スケジューラを通じて内部で切り替えられない場合、非同期プログラムは問題を同時に処理できます。

4. asyncio 非同期コルーチン

asyncio (非同期 I/O) は、同時イベントの処理に使用される Python パッケージであり、多くの Python 非同期アーキテクチャの基礎であり、同時ネットワーク リクエストが多い場合の問題を処理するために使用されます。

# 普通函数
def function():
    return 1
 
 
# 由async做前缀的普通函数变成了异步函数
async def asynchronous():
    return 1
 
 
# 而异步函数不同于普通函数不可能被直接调用
async def asynchronous():
    return 1
 
print(asynchronous())

5. 不定長パラメータ

 *args は、単一の引数を受け入れ、それをタプルとして保存します。

**kwargs はパラメータをキーと値のペアの形式で受け取り、受け取った後に辞書に格納します。

6.Pythonセイウチオペレーター定義

変数名の後に式または値が続きます。これは新しい代入演算子です。

# 基础写法
x = 5
if x < 10:
    print("hello fancy!")
 
 
# 海象运算符写法
if (x:=5) < 10:
    print("hello fancy!")

7. Python キーワードパラメータ

Python キーワード引数とは、関数を呼び出すときに仮パラメータの名前を使用して実際の入力パラメータを決定することを指します。Python キーワード パラメーターを使用すると、パラメーターの場所を覚える手間が省け、関数の呼び出しとパラメーターの受け渡しがより柔軟で便利になります。

def info(name, age, gender):
    print('姓名:', name, ': 年龄:', age, ': 性别:', gender)
 
 
info(name='阿姐', 18, gender='男')
 
### 错误 ###
  File "E:\p12\cope\first_learning\referral.py", line 20
    info(name='阿姐', 18, gender='男')
                                        ^
SyntaxError: positional argument follows keyword argument
############

8.awaitキーワード

Await はコルーチン関数でのみ使用できるキーワードであり、IO 操作が発生したときに現在のコルーチンを一時停止するために使用されます。現在のコルーチンを一時停止している間、イベントループは他のコルーチンを実行することができ、現在のコルーチンのIO処理が完了した後に、実行するコードを再度切り替えることができます。

9. Python での @property の導入と使用


Python の @property は、メソッドを装飾するために使用される Python のデコレーターです。@propert デコレータを使用して読み取り専用プロパティを作成できます。@propert デコレータはメソッドを同じ名前の読み取り専用プロパティに変換し、定義されたプロパティとともに使用してプロパティが変更されないようにすることができます。

class DataSet(object):
    @property
    def method_with_property(self):
        return 15
    
    def method_without_property(self):
        return 15
 
ls = DatatSet()
print(ls.method_with_property) # 加了@property后,可以用调用属性的形式调用方法,后面不需要加()
print(ls.method_without_property()) # 没有加@property,必须使用正常的调用方法的形式,即在后面加()

10.Pythonのデフォルトパラメータ

Python のデフォルト パラメーターとは、関数を定義するときに仮パラメーターのデフォルト値を直接設定することを指します。

def info(name='null', age, gender='男'):
    print('姓名:', name, ': 年龄:', age, ': 性别:', gender)
 
info()
 
### 错误 ###
File "E:\p12\cope\first_learning\referral.py", line 15
    def info(name='null', age, gender='男'):
                               ^
SyntaxError: non-default argument follows default argument
###########

おすすめ

転載: blog.csdn.net/weixin_72059344/article/details/131947970