python学習ノート-一般的な方法、静的方法、クラス方法、およびそのバインド
1662 ワード
1、クラス内の一般的な方法はインスタンス化されたオブジェクトでしか呼び出せません!クラスメソッドと静的メソッドは、クラスとインスタンスオブジェクトで呼び出すことができます.
################################################################################
2、クラスとインスタンスオブジェクトを動的にバインドする方法
class Classname:
@staticmethod
def fun1():
print('fun1: ')
@classmethod
def fun2(cls):##
print('fun2: ')
#
def fun3(self):
print('fun1: ')
Classname.fun1()
Classname.fun2()
#Classname.fun3()###
met= Classname()
met.fun3()
met.fun2()
met.fun3()
################################################################################
2、クラスとインスタンスオブジェクトを動的にバインドする方法
import types
### ###
class Person():
def __init__(self,name):
self.name=name
def eat(self):
print("%s ..."%self.name)
###
def play():
print(" ....")
###
@staticmethod
def hut(a):
print(" ...",a)
###
@classmethod
def cut(cls):
print(" ...")
###
def run(self):
print("%s ..."%self.name)
###
p1=Person("HK")
#### ####
"""# p1.run=run, p1.run(p1) p1.run=types.MethodType(run,p1),p1.run()"""
p1.run=types.MethodType(run,p1)###
##### ####
### , , 。 , , ####
Person.hut=hut
Person.cut=cut
Person.play=play
Person.play()### , ,
##p1.play()### 。
p1.hut(22)
p1.cut()
p1.run()
p1.eat()
print(p1.name)