python-オブジェクト向け-マルチステート
2928 ワード
マルチステート
pythonはランタイム言語であり、pythonはプロシージャ向け、オブジェクト向けをサポートします.
クラス属性とインスタンス属性
≪インスタンス・プロパティ|Instance Properties|oem_src≫:特定のインスタンス・オブジェクトと関係があり、1つのインスタンス・オブジェクトと別のインスタンス・オブジェクトは属性クラス属性クラス属性クラス属性が属するクラス・オブジェクトを共有せず、複数のインスタンス・オブジェクト間で1つのクラス属性を共有します.
クラスメソッド、インスタンスメソッド、静的メソッド
クラスメソッドとインスタンスメソッドはパラメータを伝達する必要があります.静的メソッドは
newメソッド
newメソッドは作成であり,initメソッドは初期化の2つのメソッドがc++に相当する構造メソッドである.
単一モード
pythonはランタイム言語であり、pythonはプロシージャ向け、オブジェクト向けをサポートします.
class Dog(object):
def print_self(self):
print(" ")
class xiaotq(Dog):
def print_self(self):
print("hahahhahaahha")
def introduce(temp):
temp.print_self()
dog1 = Dog()
dog2 = xiaotq()
introduce(dog1)
introduce(dog2)
クラス属性とインスタンス属性
≪インスタンス・プロパティ|Instance Properties|oem_src≫:特定のインスタンス・オブジェクトと関係があり、1つのインスタンス・オブジェクトと別のインスタンス・オブジェクトは属性クラス属性クラス属性クラス属性が属するクラス・オブジェクトを共有せず、複数のインスタンス・オブジェクト間で1つのクラス属性を共有します.
class Tool(object):
#
num = 0
#
def __init__(self,new_name):
self.name = new_name
Tool.num += 1
tool1 = Tool(" ")
tool2 = Tool(" ")
tool3 = Tool(" ")
print(Tool.num)
:3
クラスメソッド、インスタンスメソッド、静的メソッド
クラスメソッドとインスタンスメソッドはパラメータを伝達する必要があります.静的メソッドは
class Game(object):
#
num = 0
#
def __init__(self):
self.name = " "
Game.num += 1
#
@classmethod
def add_num(cls):
cls.num = 100
#
@staticmethod
def print_menu():
print("----------------")
print(" ")
print("_________________")
game = Game()
# ,
game.add_num()
print(Game.num)
Game.print_menu()
game.print_menu()
newメソッド
newメソッドは作成であり,initメソッドは初期化の2つのメソッドがc++に相当する構造メソッドである.
class Dog(object):
def __init__(self):
print("init***********")
def __del__(self):
print("del__________")
def __str__(self):
print("str&&&&&&&&&&&&&")
def __new__(cls):
print("new+++++++++++")
return object.__new__(cls) # new
xtq = Dog()
:
new+++++++++++
init***********
del__________
単一モード
class Dog(object):
pass
a = Dog()
print(id(a))
b = Dog()
print(id(b))
:
4303201280
4331156144
class Dog(object):
__instance = None
def __new__(cls):
if cls.__instance == None:
cls.__instance = object.__new__(cls)
return cls.__instance
else:
return cls.__instance
a = Dog()
print(id(a))
b = Dog()
print(id(b))
:
4331156200
4331156200
class Dog(object):
__instance = None
def __new__(cls,name):
if cls.__instance == None:
cls.__instance = object.__new__(cls)
return cls.__instance
else:
return cls.__instance
def __init__(self,name):
if Dog.__init_flag == False:
self.name = name
Dog.__init_flag == True
a = Dog(" ")
print(a.name)
print(id(a))
b = Dog(" ")
print(id(b))
print(b.name)
:
4331156256
4331156256