python类方法和实例方法的区别-Python教程

资源魔 16 0
Python中比拟常见的办法类型,即实例办法,类办法。它们是若何界说的呢?若何挪用的呢?它们又有何区分以及作用呢?且看下文。

起首,这些办法都界说正在类中。上面我先简略说一下怎样界说以及挪用的。(PS:实例工具的权限最年夜。)

实例办法(保举学习:Python视频教程)

界说:第一个参数必需是实例工具,该参数名普通商定为“self”,经过它来通报实例的属性以及办法(也能够传类的属性以及办法);

挪用:只能由实例工具挪用。

类办法

界说:应用装璜器@classmethod。第一个参数必需是以后类工具,该参数名普通商定为“cls”,经过它来通报类的属性以及办法(不克不及传实例的属性以及办法);

挪用:实例工具以及类工具均可以挪用。

实例办法

简而言之,实例办法就是类的实例可以应用的办法。这里没有做过多诠释。

类办法

应用装璜器@classmethod。

准则上,类办法是将类自身作为工具进行操作的办法。假定有个办法,且这个办法正在逻辑上采纳类自身作为工具来挪用更正当,那末这个办法就能够界说为类办法。另外,假如需求承继,也能够界说为类办法。

假定我有一个先生类以及一个班级类,想要完成的性能为:

执行班级人数添加的操作、取得班级的总人数;

先生类承继自班级类,每一实例化一个先生,班级人数都能添加;

最初,我想界说一些先生,取得班级中的总人数。

class ClassTest(object):
    __num = 0

    @classmethod
    def addNum(cls):
        cls.__num += 1

    @classmethod
    def getNum(cls):
        return cls.__num

    # 这里我用到魔术办法__new__,次要是为了正在创立实例的时分挪用累加办法。
    def __new__(self):
        ClassTest.addNum()
        return super(ClassTest, self).__new__(self)


class Student(ClassTest):
    def __init__(self):
        self.name = ''

a = Student()
b = Student()
print(ClassTest.getNum())

更多Python相干技巧文章,请拜访Python教程栏目进行学习!

以上就是python类办法以及实例办法的区分的具体内容,更多请存眷资源魔其它相干文章!

标签: Python python教程 python编程 python使用问题

抱歉,评论功能暂时关闭!