Python3補足知識ポイント

[ TOC]

PythonおよびCデータタイプ####

WeiyiGeek。PythonとCの基本的なデータタイプ間の対応

辞書を使用してスイッチ条件の選択を実現します####

説明:Python言語の習得に時間がかかり、pythonにswitch-caseステートメントがないことを確認するのに長い時間がかかりました。公式ドキュメントを確認すると、if-elseif-elseifに置き換えることができると記載されています。同時に、他のソリューションでは、辞書を使用して同じ機能を実現する方が簡単です。

辞書の各キーに対応する値を書き込むには、次のような方法があります。

switch = {“valueA”:lambda x,y:functionA(x,y),”valueB”:functionB,”valueC”:functionC}

サンプルデモンストレーション:

#! /usr/bin/env python
# pythonで切り替えます...ケースステートメント

# 呼び出された関数
def add(x,y):print("ケースc:スイッチc辞書形式でadd関数を呼び出す: %d + %d =  %d"%(x,y,x+y))

def div(x,y):return"スイッチb辞書はdiv関数を呼び出します: %d + %d  = %f"%(x,y,x/y)

# スイッチステートメント効果を実現するための辞書形式のラムダ式
switch={'a':lambda x:x**2,'b':lambda x,y:div(x,y),'c':lambda x,y:add(x,y)}
# 試してみてください...例外をキャッチすることを除いて
try:print("case a : ",switch["a"](2))  #4print("case b :",switch['b'](8,2)) #4.0switch["c"](2,5)       #辞書のキー値に従って関数を呼び出す#7
except KeyError as e:print("例外をキャッチ!")

# の結果
case a :4ケースb:スイッチb辞書がdiv関数を呼び出す:8+2=4.000000case c:スイッチc辞書形式でadd関数を呼び出す:2+5=7

ctypeモジュール(python)の3つの異なる動的ライブラリリンクメソッド####

質問:関数呼び出しの規則を理解するにはどうすればよいですか?
回答:関数呼び出し規則(呼び出し規則)は、特定のタイプの関数を正しい方法で呼び出す方法を説明します。これには、関数パラメーターがステーションに割り当てられる順序、スタックにプッシュされるパラメーター、およびそれらのパラメーターがレジスターを通過する順序が含まれます。着信、および関数が戻ったときに関数スタックがリサイクルされる方法。

2つの最も基本的な関数呼び出し規則:

C言語形式:int python_rocks(one、two、three)#x86アセンブリ言語形式(右から左へ)push 3 push 2 push one call python_rocks add esp、12#各パラメーターは4バイトのスペースを占有します

C言語形式:int python_myrocks(one、two、three)#x86アセンブリ言語形式(右から左へ)push 3 push 2 push one call python_myrocks

2つの同じ/違い:

ctypeモジュールの3つの異なる動的ライブラリリンク方法:

Recommended Posts

Python3補足知識ポイント
Pythonの知識ポイント
Pythonの高度な知識ポイント
2020--Python文法の一般的な知識のポイント
Pythonクローラーの基本的な知識ポイントの仕上げ
Pythonの解凍に関する知識ポイントの要約
pythonでのシェル実行の知識ポイント
Pythonの基礎知識(1)
Python基礎知識質問バンク
Python3.9の注目すべき更新ポイント
Pythonモジュールの知識の完全な分析