最も重要なオブジェクト指向の概念クラス(クラス)およびインスタンス(インスタンス)、抽象クラスは、具体的な「オブジェクト」のうち作成したクラスのインスタンスに基づいており、テンプレート、各オブジェクトが同じメソッドを持っていますが、それぞれですデータが異なる場合があります。以下の例のコードは、いくつかの基本的な知識のクラスを示しています。
。1つの #は/ usr / binに/ PythonのENV! 2 #- * -コーディング:UTF-8 - * - 3。 #@date:2020年3月8日 。4 #@author:Flyinghappy([email protected]) 。5 #@link :https://www.cnblogs.com/flyinghappy/ 。6 #@Version:$ $同上 。7 インポートJSON 。8 インポートOS 9つの 10 クラスパーソン: 11 '' ' 機能、最初のデフォルトパラメータのクラスは自己の内部で定義されています' '' 12は、 NUM = 0 #のクラス属性 13がある DEF __init__(セルフ、名前= '' 、年齢= 20れます):#インスタンスにバインドする名前、年齢などの属性のクラスインスタンスを作成する特別な方法。 14 セルフ。__name__ =名#のクラスのインスタンス変数、フロント'__'二重下線の制限外部アクセス 15 self.age年齢= #クラスのインスタンス変数 16 self.talking_note = [] #のクラスのインスタンス変数 17。 DEFの話(セルフ、talk_something):#クラス・メソッド 18は self.talking_note.append(talk_something) 19。 プリント(talk_something) 20である DEF保存(自己): #のクラスメソッド 21は 、ファイル名= ' 人' + ' .json ' 22であり = person_info [自己。__name__ 、self.age、self.talking_note、person.num] 23は、 オープン(ファイル名と' W ' )AS F: 24 json.dump(person_info、F) 25 f.close() 26は 27 IF __name__ == ' __main__ ' : 28 (名=人=人' flyinghappy '年齢= 40、) #は、人、名前と年齢のクラスのインスタンスを宣言し、初期化属性 29 '' ' Personクラスの属性NUMを使用して、whileループ以下を'' ' 30 ながら person.num <5 : 31であります 注記= ' 私は数午前:' + STR(person.num) 32 person.talk(注) 33 person.num + = 1 34 他: 35 person.save()
出力:
次のようにPerson.jsonファイルストレージの内容は以下のとおりです。
#!は/ usr / binに/のenvのpython# - * -コーディング:UTF-8 - * - #@Date:2020年3月8日#@Author:Flyinghappy([email protected])#@linkます。https:// @Version www.cnblogs.com/flyinghappy/#:輸入jsonimport OS $ $ Idが
クラスパーソン:「」「クラス定義関数内で、最初のパラメータは、デフォルトの自己である」「」NUM = 0#クラスはデフ__init __属性(自己、名前=「」、年齢= 20):# クラス名のインスタンスを作成するときに、年齢やその他のプロパティはインスタンスにバインドされている特別な方法。:自己.__名=名#クラスインスタンス変数、フロント「__」は、二重の外部アクセスself.age =年齢#クラスのインスタンス変数self.talking_note = []#クラスのインスタンス変数のデフトーク(自己、talk_something)制限下線 # 自己クラスのメソッドを.talking_note.appendプリント(talk_somethingを)(talk_something)デフ(自己)保存:# クラスメソッドのファイル名を= '人' + person_info = [自己.__名、self.age、self.talking_note、person.num]と'JSON'。 オープン( 'W'のファイル名) Fとして:json.dump(person_info、fはf.close()を)
もし__name__ ==「__main__」:人=人(名前=「flyinghappy」、年齢= 40)#は「人クラス属性num個を使用して、whileループを以下の」人、名前と年齢のクラスのインスタンスを宣言し、「」属性を初期化します'' 5 <person.num中:ノート= ':' + STR(person.num)person.talk(注)person.num + = 1他:私は数だperson.save()