1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python静态方法 类方法 属性方法 实例方法

python静态方法 类方法 属性方法 实例方法

时间:2020-05-20 09:08:21

相关推荐

python静态方法 类方法 属性方法 实例方法

DAY 3. 静态方法,类方法,属性方法,实例方法

有四种方法,实例方法,类方法,静态方法,属性方法

实例方法

实例方法的第一个参数是self,他会指向类的实例化对象,只能被对象调用,如

class Demo:def instanceMethod(self):print("this is a instance method")if __name__ == "__main__":demo = Demo()demo.instanceMethod()

用点调用时不需要传入对象参数,python会把调用实例方法的对象作为实例方法的第一个参数传入,等价于

if __name__ == '__main__':demo = Demo()Demo.instanceMethod(demo)

类方法

使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,可以使用类(例如C.f())或实例(例如C()。f())调用类方法。 除了类之外,该实例被忽略。 如果为派生类调用类方法,则派生类对象将作为隐含的第一个参数传递。

class Demo:@classmethoddef classMethod(self):print("this is a class method")if __name__ == "__main__":demo = Demo()Demo.classMethod()demo.classMethod()

同样是语法糖,用点调用时会自动把调用类方法的类或对象作为第一个参数传入

静态方法

用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,静态方法不会接收隐式的第一个参数,类似于c++中的静态方法,只是占用了类的命名空间,与类没有联系,了一使用类名或对象名调用

属性方法

用来将一个方法变成静态属性,使用修饰器@property

class C:def __init__(self):self._x = None@propertydef x(self):"""I'm the 'x' property."""return self._x@x.setterdef x(self, value):self._x = value@x.deleterdef x(self):del self._x

TODO : 有点难改天专门学

总结

参考文章

GitHub 关于python的面试题

Python静态方法、类方法、属性方法

Python面向对象静态方法,类方法,属性方法

Python 实例方法、类方法、静态方法的区别与作用

python 文档 staticmethod

python 文档 classmethod

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。