クラスとオブジェクト
クラスとオブジェクト
オブジェクト向けプログラミング
オブジェクトとオブジェクトとの相互関係を中心に作成された
カテゴリ
これは、
オブジェクト
属性(プロパティ)とメソッド(動作)があり、名前付きエンティティ、クラスを実体化またはインスタンス化できるオブジェクト.
ツールバーの
キーワード
class Person: # 클래스는 첫글자만 대문자로 해주면 됨(객체와 클래스를 구분하기 위해서)
def __init__(self): # 클래스 안에 위치해 있는 함수 = 메소드
# __앞,뒤에 있으면 특수한 목적
# init은 생성자(constructor): 객체생성시 자동 호출됨, 속성을 정의하여 초기화 하기 위해 주로 사용함!
self._hakbun = ""
# self다음 점 찍고 나오는 것을 "속성"이라고 함
self._irum = ""
print("객체 생성")
def setHakbun(self, hakbun):
self._hakbun = hakbun
# 속성 #로컬변수
print("학번 변경")
def setIrum(self, irum):
self._irum = irum
print("이름변경")
def printData(self):
print("학번 : ", self._hakbun, "이름 : ", self._irum)
if __name__ == "__main__":
obj1 = Person() # 클래스 이름을 이용해 객체 만듬
obj1.setHakbun("A001") #obj1은 글로별 변수
obj1.setIrum("이기자")
obj1.printData()
構造関数と方法メソッドはオブジェクトに保存されました
「A 001」はhakbunに保存されます
hakbunという名前の領域変数に出力します.
ゾーン変数が消えました
「勝ちましょう」はirumに格納されています
irumという領域変数に出力すると
ゾーン変数が消えました
オブジェクトを作成すると、アドレスが保存されます.
selfは作成されたオブジェクトのアドレスです
self
オブジェクトの作成(オブジェクト)
obj.setHakbun("A001")
obj.setIrum
setHakbun()、serium()、printData()=>メソッド(=関数)
作成者と消滅者
オブジェクトが失われると、
1.参照のReferrenceがない場合
2.プログラム終了時
Q.プログラムが終了する前に、ソースプログラムが消滅者を呼び出す必要がある状況を知りたい.
A.空間が割り当てられた場合、予期せぬ事態が発生し、プログラムが終了すると、他の空間を割り当てるプログラムは永遠に一部の空間を使用できなくなる可能性があるので、消滅者として準備しなければならない.
Q.いつでも消滅者を使ってもいいですか?
A.消滅者を別途割り当てる場合は、消滅者を使用することが望ましい.
ただし、作成したオブジェクトが書き換えられないと判断した場合は、消滅者を追加しなくてもdelオブジェクトのみが削除されます.削除すると、別のワークスペースとして使用できます.
Q.消灭者を使って削除する対象は一度に1つ削除しますか?
A.上記コードについてobjは削除される
objオブジェクトは削除されましたが、objを作成できません.
このようにすることができます
oj 1=Person()オブジェクトの作成中にエラーが発生しました.
どうすれば間違いないの?
C言語は複数のジェネレータを作成することができる.
Pythonはジェネレータを作成できます.
メソッドオーバーロード
メソッド名の定義は同じですが、異なるパラメータが与えられます.
名前は同じですが、パラメータ形式で識別できます.
Pythonではメソッドオーバーロードはサポートされていません.
2つのオプションから1つを選択する必要があります
objとobj 1
パラメータのないobjに入れる
Q.オブジェクトのメンバー変数はunderbarが一般的ですか?
Reference
この問題について(クラスとオブジェクト), 我々は、より多くの情報をここで見つけました https://velog.io/@nahye0910/python-클래스와-객체テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol