図1に示すように、反射
キーワード:
GETATTR文字列は、部材対象を見つけるために、
文字列に応じてはhasattr、被験者そのメンバがあるか否かを判断する
SETATTR列によれば、ターゲット移動体を設定する(RAM)
、delattr文字列に従って設定した目標を判断する移動部材(RAM)
簡単な例:
1、5つの機能、およびファイルハンドラ内の番号を定義します
デフF1(): 印刷(" F1 " ) デフF2(): 印刷(" F2 " ) デフF3(): 印刷(" F3 " ) デフF4(): 印刷(" F4 " ) DEF F5(): 印刷(" F5 " ) F0 = 9
2、その後、実行ファイルを作成します。に対応する伝達関数へのデジタル入力
タイプのインポートFunctionType インポートハンドラ しばらく真: 印刷(「」「 システムを機能サポートしています。 1.f1 2.f2 3.f3 4.f4 5.f5 6.f6 」「」) ヴァル = INPUTは(" 入力してください。実行する機能:" ) のiFはhasattr(ハンドラ、ヴァル): #が正常か否かを判断 func_or_val = GETATTR(ハンドラ、ヴァル) #パラメータの文字列を、ブロックと同じ名前のメンバーを見つけるため のiF でisinstance(func_or_val、FunctionType) : func_or_val() 他: 印刷(func_or_val) 他: 印刷(「入力された属性名が存在しない」) #の概要。オブジェクト(最初のパラメータ)の文字列パラメータ(第2パラメータ)は、同じ名前を持つメンバーを検索します
比較的大量のデータは、反射の束を書き込むかを決定することは不可能である場合、この時点では特に重要です。
要約:
何反映されている:文字列パラメータ(第2パラメータ)、オブジェクト(最初のパラメータ)に同じ名前のメンバー(文:関連した操作対象の文字列の属性の形式)を見つけるために
2、MD5暗号化
Pythonでは、MD5暗号化モジュールはhashlibに依存します
通常のMD5暗号化は、簡単にライブラリ亀裂をノックしました。あなたは塩を必要とするときです。
次のように簡単な例を示します。
インポートhashlib SALT = B ' asdasd ' DEF :MD5(PWD) OBJ = hashlib.md5(SALT) 位SALT塩 (pwd.encode(obj.updateを' UTF-8 ' )) #は、暗号文取得 V = obj.hexdigestを() の戻り V
#MD5は可逆的ではないので、MD5暗号解読ので。データが暗号化され、平文を暗号化するために、次に比較すること、という結論につながるください。
3、ログ。
前に一度書き込まれた、それを繰り返さないでください。