当前位置:首页>开发>正文

python中的魔法方法有了解哪些 python中类方法,属性方法,静态方法。有什么区别和联系。

2023-07-31 00:18:44 互联网 未知 开发

 python中的魔法方法有了解哪些 python中类方法,属性方法,静态方法。有什么区别和联系。

python中的魔法方法有了解哪些

问的太笼统了,不知道答的对不对. 看下面的图
左边元类,中间类,右边实例
其实记住的只是一点:python里一切都是对象,实例是对象,类是对象,元类也是对象.
这里题主说的类和对象其实是包含和被包含的关系了.
那么Python里的类和其他的对象有什么区别?
实例是对象,因为创建实例的是类.类是对象,创建类的是什么呢?Python给的答案就是元类.你可以通过type()函数来查看它的元类.(type(type)得到的是它自己)
其实这个类和其他对象一样,所以我们就不惊讶它为什么有类方法,类变量了..

python中类方法,属性方法,静态方法。有什么区别和联系。



如果只看这个图,很多人可能会看的一头雾水,特别是学过完全面向对象语言的同学, Python 是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个. py 文件,里面没有类,全是一些函数,调用的时候导入模块,通过模块名.函数名()即可调用,完全不需要类,那么你可能会问,那要类还有什么毛用? 类就是用来面向对象编程啦,类可以有自己的属性,类可以创建很多实例,每个实例可以有不同的属性,这也就保存了很多私有的数据,总之都有存在的必要.
再来看上面这张图,在类里面定义的函数就是方法,类方法需要@ classmethod 修饰并且有个隐藏参数 cls,实例方法必须有个参数 self, 静态方法必须有 @staticmethod修饰,类和实例都可以访问静态方法,实例可以访问实例方法也可以访问类方法,类可以访问类方法也可以访问实例方法,访问实例方法必须要带参数 self, 可以理解为类其实也是一个实例,类访问实例方法不带参数会报错的.类本身可以访问函数,实例却不行.

python 类方法和静态方法的区别

两个都是装饰器,staticmethod是将类的函数声明为静态方法,这样可以直接通过类调用该方法,而不用实例话该对象。例如classA():@staticmethoddeftest(self):print“hehe”A.test()这样就能调用。classmethod,是将该装饰器修饰的函数,第一个参数变为cls(平常是self)。self指向该类的实例,也就是一个对象,cls指向这个类本身classA():@classmethoddeftest(cls):cls.__init__()print“hehe”a=A()a.test()这个时候,在test里可以对类进行初始化等等。就是其修饰的函数,一个是对类的对象操作,一个是对类本身操作

Python 里面的 函数 和 方法 怎么区分

在Python里,函数在很多时候就叫方法,比如在类里面定义函数,其实就是类的方法。 还有自定义函数,其实也可以称做自定义方法。 不用太在意称呼,没什么区别,你知道别人说方法其实就是函数就行。反之亦然Python 里面的 函数 和 方法 怎么区分

最新文章

随便看看