云顶集团官网手机版-云顶集团网站

热门关键词: 云顶集团官网手机版,云顶集团网站
做为属性使用, self隐式的将
分类:编程

__init__与__new__区别:

谈起装饰器,就不能不说python自带的四个装饰器:

__init__在python,其实是,在实例化之后施行的,用来开首化一些属性,相当于构造函数,不过又不均等

1、@property   将某函数,做为属性使用

精心一些,通过参数会怀有察觉,其实__init__(self)  self隐式的将,实例传过来。

 @property 修饰,正是将艺术,形成叁脾性能来使用。

 

class A():


    @property
    def pfunc(self):
        return self.value

    @pfunc.setter
    def pfunc(self,value):
        self.value = value

    @property
    def pfunc1(self):
        print('this is property')

if __name__=="__main__":

    A.pfunc = 9
    print A.pfunc
    A.pfunc1

__new__在python中其实是,在实例化在此以前实施的,那一个通过参数同样能够看见

云顶集团官网手机版, 

__new__(cls),cls是隐式的传递的类对象,实际不是实例。因为__new__的职务就是,创制类实例并重临实例。

2、@classmethod  修饰类的办法

class temp(object):

    def __init__(self,txt):
        self.txt = txt
        print '__init__'


    def __new__(cls,txt):
        print '__new__'
        print txt
        return super(temp,cls).__new__(cls)

temp('what?')

带修饰类方法:cls做为方法的第五个参数,隐式的将类做为对象,传递给艺术,调用时绝不实例化。

结果:

常见函数方法:self做为第一个参数,隐式的将类实例传递给艺术,调用方法时,类必得实例化。

C:Python27python.exe D:/weixin/temp/abc.py
__new__
what?
__init__

Process finished with exit code 0
class A():
    def func(self,x,y):
        return x * y

    @classmethod
    def cfunc(cls,x,y):
        return x * y

if __name__=="__main__":
    print A().func(5,5)
    print A.cfunc(4,5)

 

 

 

3、@staticmethod  修饰类的点子

Linux and python学习交换1,2群已满.

1)是把函数嵌入到类中的风度翩翩种方式,函数就属于类,同期申明函数无需走访这么些类

做为属性使用, self隐式的将。Linux and python学习调换3群新开,款待参预,一齐学习.qq 3群:563227894

 2)使用修饰性格很顽强在荆棘塞途或巨大压力面前不屈,修饰方法,无需实例化

不前进,不倒退,停止的意况是绝非的.

 

一起前进,与君共勉,

class A():
    def func(self,x,y):
        return x * y


    @staticmethod
    def sfunc(x,y):
        return x * y


if __name__=="__main__":

    print A.sfunc(6,5)

 

 

 

Linux and python学习沟通1,2群已满.

Linux and python学习调换3群新开,迎接参预,一同学习.qq 3群:563227894

不前进,不倒退,结束的情况是从未的.

一起前行,与君共勉,

 

本文由云顶集团官网手机版发布于编程,转载请注明出处:做为属性使用, self隐式的将

上一篇:thinkphp去掉url中的.html后缀 下一篇:没有了
猜你喜欢
热门排行
精彩图文