zoukankan      html  css  js  c++  java
  • @staticmethod和@classmethod的用法

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

    class A(object):
        bar = 1
        def foo(self):
            print( 'foo')
    
        @staticmethod
        def static_foo():
            print( 'static_foo')
            print (A.bar)
    
        @classmethod
        def class_foo(cls):
            print ('class_foo')
            print (cls.bar)
            cls().foo()
    A.static_foo()
    A.class_foo()
    

    面向对象中的@classonlymethod 与 @classmethod的区别
    如果要使用classonlymethod ,则需要先定义好一个classonlymethod 类。
    首先我们需要明白无论是classonlymethod还是classmethod,本质都是一个类,而classonlymethod继承了classmethod。

    class classonlymethod(classmethod):
        def __get__(self, instance, owner):
            if instance is not None:
                raise AttributeError('This method is available only on the view class .')
            return super(classonlymethod, self).__get__(instance, owner)
    
    写入自己的博客中才能记得长久
  • 相关阅读:
    NOI2015刷题记录
    [WC2013][UOJ58]糖果公园 莫队算法
    啦啦啦~
    完全平方数
    构建之法
    测试更新
    程序的测试
    程序的封装
    构建之法5.5-6-7章观后感
    给徐侃童鞋的一个汉堡
  • 原文地址:https://www.cnblogs.com/heris/p/14667921.html
Copyright © 2011-2022 走看看