我是Python的新手,只是了解它的对象/类的实现。我理解实例方法,类方法和静态方法之间的区别,但我不明白为什么可以从类本身调用未被装饰为@classmethod或@staticmethod的方法。
我非常(非常)基本的例子:
DIAPI <-
fromJSON("https://rxnav.nlm.nih.gov/REST/interaction/interaction.json?
rxcui=&sources=ONCHigh")
方法print_stuff()在类上调用时似乎充当静态方法,将参数作为单个参数而不是类(cls)。为什么在类上调用未使用@staticclass修饰的方法?这是设计还是只是一种奇怪的副作用,为什么?从我到目前为止所学到的,Python在设计上几乎没有“奇怪的副作用”。
答案 0 :(得分:1)
名为self
的第一个参数仅仅是一个约定。该实例将作为第一个位置参数传递,与您命名的实例无关(在本例中,您将其称为stuff
)。