複合モード
実際、複合モードは、基本的に 3 つの役割があります: トランク (リーフを操作するためのいくつかの操作を定義)、ブランチ (トランクには多数のブランチがあります)、およびリーフ (トランクが必要とするもの)。特定の操作) オブジェクト)、複合パターンは、オブジェクトとして動作するときでも、他のオブジェクトと同じくらい簡単であるため、一貫性を提供することを理解するのに役立ちます
Python の例
class Trunk(object): '''树干''' def __str__(self): pass def subtree(self): pass class Composite(Trunk): def __init__(self, left=None, right=None, length=None): self.left=left self.right=right self.length=length def __str__(self): # 这个结果是在调用subtree()的时候返回 if self.length: return "(" + self.left.__str__() + ", " + self.right.__str__() + ")" + ": " + str(self.length) else: return "(" + self.left.__str__() + ", " + self.right.__str__() + ")" # 这里其实就是一个技巧,通过这个函数返回下一级的对象,也就是它既是对象还可以是对象的容器 def subtree(self): return Composite(self.left, self.right) class Leaf(Trunk): '''叶子类,它没办法继续延伸了''' def __init__(self, name, length=None): self.name = name self.length=length self.left = None self.right = None def __str__(self): return self.name + ": " + str(self.length) def subtree(self): return Leaf(self.name, self.length) if __name__ == "__main__": # 只有叶子那么就直接返回__str__的拼装结果 t1 = Leaf('A', 0.71399) print t1 # 有个2个叶子的组合,返回的是2个叶子的对象的组合 t2 = Composite(Leaf('B', -0.00804), Leaf('C', 0.07470)) print t2 # 这个是嵌套的叶子的组合,树干上面有树枝,树枝上面有叶子 t3 = Composite(Leaf('A', 0.71399), Composite(Leaf('B', -0.00804), Leaf('C', 0.07470), 0.1533), 0.0666) print t3 # 直接通过左右节点找到对应的叶子对象了 t4 = t3.right.right.subtree() print t4 # t3的左树其实就是叶子对象了 t5 = t3.left.subtree() print t5
チェーン責任モデル
たとえば、私たちはまだ勉強中です。当時、テストのスコアは90〜100点、80〜90点など、いくつかの段階に分かれていました。まあ、学力に基づいてフィードバックを作成したいと思います。たとえば、90 ~ 100 は A+、80 ~ 90 は A、70 ~ 80 は B+... もちろん、ここではチェーン モードを実装します。シリーズを使用します。応答するクラスの数を返しますが、ケースと同様に、処理に適したクラスが見つかった場合にのみ処理されます。 スイッチの役割
Python の例
class BaseHandler: # 它起到了链的作用 def successor(self, successor): self.successor = successor class ScoreHandler1(BaseHandler): def handle(self, request): if request > 90 and request <= 100: return "A+" else: # 否则传给下一个链,下同,但是我是要return回结果的 return self.successor.handle(request) class ScoreHandler2(BaseHandler): def handle(self, request): if request > 80 and request <= 90: return "A" else: return self.successor.handle(request) class ScoreHandler3(BaseHandler): def handle(self, request): if request > 70 and request <= 80: return "B+" else: return "unsatisfactory result" class Client: def __init__(self): h1 = ScoreHandler1() h2 = ScoreHandler2() h3 = ScoreHandler3() # 注意这个顺序,h3包含一个类似于default结果的东西,是要放在最后的,其他的顺序是无所谓的,比如h1和h2 h1.successor(h2) h2.successor(h3) requests = {'zhangsan': 78, 'lisi': 98, 'wangwu': 82, 'zhaoliu': 60} for name, score in requests.iteritems(): print '{} is {}'.format(name, h1.handle(score)) if __name__== "__main__": client = Client()
Python の組み合わせモードとチェーンに関連するその他の記事はこちら責任モードのプログラミング例については、PHP の中国語 Web サイトに注目してください。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
