python cls方法_python – cls()函数在类方法中做了什么?
對于classmethods,第一個參數是調用類方法的類,而不是通常的self for instance方法(除非另有說明,否則隱式地使用類中的所有方法).
這是一個例子 – 為了練習,我添加了一個檢查cls參數標識的異常.
class Base(object):
@classmethod
def acquire(cls, param):
if cls is Base:
raise Exception("Must be called via subclass :(")
return "this is the result of `acquire`ing a %r with %r" % (cls, param)
class Something(Base):
pass
class AnotherThing(Base):
pass
print Something.acquire("example")
print AnotherThing.acquire("another example")
print Base.acquire("this will crash")
this is the result of `acquire`ing a with 'example'
this is the result of `acquire`ing a with 'another example'
Traceback (most recent call last):
File "classmethod.py", line 16, in
print Base.acquire("this will crash")
File "classmethod.py", line 5, in acquire
raise Exception("Must be called via subclass :(")
Exception: Must be called via subclass :(
總結
以上是生活随笔為你收集整理的python cls方法_python – cls()函数在类方法中做了什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: minio权限之IAM policy配置
- 下一篇: 读书:在别人的盯梢儿和嚼舌根中茁壮成长