面向对象中的@classonlymethod 与 @classmethod的区别

Posted dream-huang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象中的@classonlymethod 与 @classmethod的区别相关的知识,希望对你有一定的参考价值。

如果要使用classonlymethod ,则需要先定义好一个classonlymethod 类。

首先我们需要明白无论是classonlymethod还是classmethod,本质都是一个类,而classonlymethod继承了classmethod。

classonlymethodz作用:只能被类调用,不能被实例对象调用。

class classonlymethod(classmethod):  # 继承classmethod
    def __get__(self, instance, cls=None): # 
        if instance is not None:
            raise AttributeError("This method is available only on the class, not on instances.")
        return super(classonlymethod, self).__get__(instance, cls)

 

his method is available only on the class, not on instances.

以上是关于面向对象中的@classonlymethod 与 @classmethod的区别的主要内容,如果未能解决你的问题,请参考以下文章

什么是JavaScript中的面向对象? 与其他编程语言的面向对象有什么区别? 什么是原型?

面向对象与面向过程的本质的区别

面向过程与面向对象编程的区别和优缺点

《面向对象分析与设计》阅读笔记3

python面向对象中的,变量,方法与属性

面向对象思想的核心概念