01 ------------- -------------------クラス
クラスPerson(オブジェクト):
年齢= 10;
デフ__init __(自己、年齢):
:年齢がNoneではない場合
self.age =年齢
デフ(自己を)話す:
印刷(「こんにちは」)
PERSON1 =人物(30)
印刷(person1.age)
PERSON2 =人(なし)
印刷(person2.age)
- - - - - - - - - 新しい - - - - - - - - - - - - - - -
クラス・ドッグ(オブジェクト):
デフ__new __(CLS):
印刷( "新しい")
の戻りオブジェクト.__新しい__(CLS)
デフ__init __(自己):
プリント( "INIT")
:DEF(自己)話す
( "話す")印刷を
デフ__del __(自己):
プリント( "削除")
犬=犬()。
dog.speak()
- - - - - - - - - - - - - -スーパー - - - - - - - - - - -
クラスの魚(オブジェクト):
デフ__init __(自己、名):
self.name =名前
スイムDEF(セルフ):
印刷( "{0}水泳すぐに" .format(self.name))
デフ__del __(自己):
プリント( "削除")
クラス金魚(魚):
デフ__init __(自己、名):
スーパー(金魚、自己).__のinit __(名)
デフ実行(自己):
スーパー(金魚、自己).swim()
魚=金魚(「金魚」)
2.デザインシンプルなファクトリパターン########### ##############
#有意に異なるインタフェース、別々の実現に簡単な
クラスを支払う(オブジェクト):
DEF __init __(自己、マネー):
self.money =マネー
ペイDEF(セルフ):
印刷( "カタツムリの金融:支払額は{0}である"形式(self.money) 。)
クラスWeiXin(オブジェクト):
デフ__init __(自己、お金):
self.money =お金
ペイDEF(セルフ):
印刷(フォーマット(self.money) "支払額は{0}です" 。)
クラスZhifubao(オブジェクト):
デフ__init __(自己、お金):
self.money =お金
ペイDEF(セルフ):
印刷(フォーマット(self.money) "支払額は{0}です" 。)
チャンネル=入力( "お支払い方法を選択してください:")
マネー=フロート(INPUT( "お支払い金額を入力してください:"))
チャンネル== "Weixin" IF:
Weixin(金).pay()
のelifチャンネルは"zhifubaoを" == :
Zhifubao(金).pay()
他:
ペイ(金).pay()
###################ファクトリメソッド######################
長所:を気にする必要は具象クラスを達成するために、カテゴリをインポートするために時間を使うことができる方法ではありません。
クラスペイ(オブジェクト):
デフ__init __(自己、お金):
self.money =お金
ペイDEF(セルフ):
印刷( "カタツムリの金融:支払額は{0}である"形式(self.money) 。)
クラスWeiXin(オブジェクト):
デフ__init __(自己、お金):
self.money =お金
有料DEF(自己):
プリント( "マイクロチャネル支払額は{0}"形式(self.money) )。
クラスZhifubao(オブジェクト):
デフ__init __(自己、お金):
self.money =お金
ペイDEF(セルフ):
印刷(形式(self.money) "Alipayの支払額は、{0}です" 。)
クラスPayFactory(オブジェクト):
デフ(自己、お金)を作成:
リターン・ペイ(金)
クラスWeiXinFactory(オブジェクト):
デフを作成(自己、お金):
リターンWeiXin(金)
クラスZhifubaoFactory(オブジェクト):
デフ(自己、お金)を作成します。
Zhifubao(お金を)返します
------
方法インポートPayFactory
工場= PayFactory()
支払う= factory.create(100)
pay.pay()
以下からのメソッドのインポートWeiXinFactory
工場= WeiXinFactory()
支払う= factory.create(1000)
pay.pay()
メソッドのインポートZhifubaoFactoryから
工場= ZhifubaoFactory()
支払う= factory.create(10000)
)pay.pay(
------反射抽象ファクトリー
モデル=入力(「モジュール名を入力してください」)
INPUTを持つクラスクラスA =(「クラス名を入力してください」)
お金はINPUTを=(「金額を入力してください。」)
モデル= __import __(モデル)
オブジェクト= GETATTR(モデル、クラスA)(金)
プリント(DIR(モデル))
プリント(オブジェクト)
object.pay()
============== ==============シングルトン
クラスSingleTone(オブジェクト):
デフ__new __(CLS、* argsを、**キロワット):
(CLS、 '_INSTANCE')はhasattrない場合:
cls._instance =スーパー(SingleTone、CLS)を.__新しい__(CLS)
リターンcls._instance
single1 = SingleTone()
single2 = SingleTone()
プリント(ID(single1))
プリント(ID(single2))