>
> 定义方式,传入的参数,调用方式都不相同。
> >
> > staticmethod 不需要传入self和cls对象,只有一般的参数。可以通过实例或类对象进行调用。
> > classmethod需要传入cls对象,可以通过实例和类对象进行高用。
> > 一般的method需要传入self实例对象。
>
> 参与讨论一下:
>
> 从学习java中类比过来,
> 如果在一个文件范围内(文件中定义有类,类中还定义有方法):
> staticmethod相当于在一个包(文件)被导入时,这个方法在内存中就相应产生了。我们可以对它进行调用。
>
> classmethod相当于在一个类被声明时(没有定义,这时还没有类的实例),这个方法在内存中相应产生,我们可对其进行调用。
>
> 第三种就是一般的方法,需要在声明并定义一个类,这时产生了类的实例,内存中才能得到这个实例的地址,这时才可以调用。
>
>
其实方法就是代码,python在导入模块时会进行编译处理(如果需要的话),这时我想三种方法应该都已经存在了。所以这三种方法的生成时间倒不是什么问题,它们处理的范围和起到的作用是用来进行区分的依据。
> >
> > staticmethod 不需要传入self和cls对象,只有一般的参数。可以通过实例或类对象进行调用。
> > classmethod需要传入cls对象,可以通过实例和类对象进行高用。
> > 一般的method需要传入self实例对象。
>
> 参与讨论一下:
>
> 从学习java中类比过来,
> 如果在一个文件范围内(文件中定义有类,类中还定义有方法):
> staticmethod相当于在一个包(文件)被导入时,这个方法在内存中就相应产生了。我们可以对它进行调用。
>
> classmethod相当于在一个类被声明时(没有定义,这时还没有类的实例),这个方法在内存中相应产生,我们可对其进行调用。
>
> 第三种就是一般的方法,需要在声明并定义一个类,这时产生了类的实例,内存中才能得到这个实例的地址,这时才可以调用。
>
>
其实方法就是代码,python在导入模块时会进行编译处理(如果需要的话),这时我想三种方法应该都已经存在了。所以这三种方法的生成时间倒不是什么问题,它们处理的范围和起到的作用是用来进行区分的依据。