python办法是甚么?
办法用来形容工具所具备的行为。
正在类中界说的办法能够粗略分为四年夜类:私有办法、公有办法、动态办法、类办法。
私有办法、公有办法普通所指属于工具的实例办法,
公有办法的名字以两个下划线 __ 开端。
每一个工具都有本人的私有办法以及公有办法,正在这两类办法中均可以拜访属于类以及工具的成员。
私有办法经过工具名间接挪用,
公有办法不克不及经过工具名间接挪用,只能正在实例办法中经过 self 挪用或许内部经过 python 支持的非凡办法来挪用。
类的一切实例办法都必需至多有一个名为 self 的参数,而且必需所办法的第一个形参,self 参数代表工具本身。
正在类的实例办法中拜访实例属性时需求以 self 为前缀,但正在内部经过工具名挪用工具办法时其实不需求通报这个参数,假如正在内部经过类名挪用属于工具的私有办法,需求显式为该办法的 self 参数通报一个工具名,用来明白指定拜访哪一个工具的数据成员。
动态办法以及类办法均可以经过类名以及工具名挪用,但不克不及间接拜访属于工具的成员,只能拜访属于类的成员。普通将 cls 作为类办法的第一个参数,示意该类本身,正在挪用类办法时没有需求为该参数通报值。
保举:《python教程》
>>>class Root: __total = 0 def __init__(self, v): #结构函数 self.__value = v Root.__total + = 1 def show(self): #一般实例办法 print(‘self.__value:’,self.__value) print(‘Root.__total:’,Root.__total) @classmethod #润饰器,申明类办法 def classShowTotal(cls): #类办法 print(cls.__total) @staticmethod #润饰器,申明动态办法 def staticShowTotal(): #动态办法 print(Root.__total) >>>r = Root(3) >>>r.classShowTotal() #经过工具来挪用类办法 1 >>>r.staticShowTotal() #经过工具来挪用动态办法 1 >>>r.show() self.__value:3 Root.__total:1 >>>rr = Root(5) >>>Root.classShowTotal() #经过类名挪用类办法 2 >>>Root.staticShowTotal() #经过类名挪用动态办法 2 >>>Root.show() #经过类名间接挪用实例办法,报错
报错
>>>Root.show(r) #挪用办法并拜访实例成员 self.__value:3 Root.__total:2 >>>r.show() self.__value:3 Root.__total:2 >>>Root.show(rr) #经过类名挪用实例办法时为 self 参数显式通报工具名 self.__value:5 Root.__total:2 >>>rr.show() self.__value:5 Root.__total:2
注:没有同工具实例的数据成员之间互没有影响,时没有同享的。但同一个类的一切实例办法时正在没有同工具之间同享的,一切工具都执行相反的代码,经过 self 参数来判别要解决哪一个工具的数据。
python 中,函数以及办法时有区分的。办法普通指特定实例绑定的函数,经过工具挪用办法时,工具自身将被作为第一个参数通报过来,一般函数不此特性。
>>>class Demo pass >>>t = Demo() >>>def test(self, v): self.value = v >>>t.test = test #静态添加一般函数 >>>t.test >>>t.test(t,3) >>>print(t.value) 3 >>>import types >>>t.test = types.MethodType(test, t) #静态添加绑定的办法 >>>t.test >>>t.test(5) >>>print(t.value) 5
以上就是python办法是甚么的具体内容,更多请存眷资源魔其它相干文章!
标签: python教程 python编程 python使用问题 python方法
抱歉,评论功能暂时关闭!