在使用静态方法时,类中的self将不会再进行传值,此时,静态方法已经和类没什么关系了。
普通方法:直接调用类下面的方法
静态方法:引入了@staticmethod
当eat函数变为静态方法时python静态方法,此时静态方法将eat函数与类dog之间的关联截断,之前调用类下面的方法会自动传self,如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
当使用了静态方法后,该函数下无法在调用类的变量和实例的变量。
静态方法名义上归类管理,实际中在静态方法中无法访问类和实例中的任何属性。
python类方法
类
类方法:引入了@classmethod
类方法只能访问类变量,不能访问实例变量。
访问实例变量会报错:如下
报错信息:AttributeError: type object ‘dog’ has no attribute ‘name’
python属性方法
属性方法是把一个方法变为静态属性,调用是不能有()。否则会报错。
怎么给该属性传值呢?在属性方法下新建一个函数,@eat.setter的方式。
属性方法无法通过del方式删除:
可通过如下方法删除:
总结
静态方法和类方法都需要使用修饰器python静态方法,分别使用的是staticmethod和classmethod。属性方法的使用修饰器为property。
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。