当前位置: 首页 » Python(人生苦短) » py_basic » 认识python的类

认识python的类

[文章目录] x

断断续续的写过几个类之后,对类有了一些基本的认知。突然认识到去年年初的时候,小龚看了我的代码,来了一句,我靠,你的class里面怎么都是staticmethod呀?

一、类的属性

要知道一个类有哪些属性,有两种方法。最简单的是使用 dir() 内建函数。另外是通过访问类的字典属性 __dict__。

dir() 返回的仅是对象的属性的一个名字类表,而 __dict__ 返回的是一个字典,它的键(key)是属性名,键值(value)是相应的属性对象的数据值。

特殊的类属性

C.__name__类C的名字(字符串)
C.__doc__        类C的文档字符串
C.__bases__        类C的所有父类构成的元组
C.__dict__        类C的属性
C.__module__        类C定义所在的模块
C.__class__        实例C对应的类

__name__ 是给定类的字符名字。它适用于那种只需要字符串(类对象的名字),而非对象本身的情况。__doc__是类的文档字符串,与函数及模块的文档字符串相似,必须紧随头行后的字符串。文档字符串不能被派生类继承,也就是说派生类必须含有他们自己的文档字符串。__bases__用来处理继承,它包含了一个由所有父类组成的元组。__dict__属性包含一个字典,由类的数据属性组成。

一、classmethod和staticmethod区别

类和实例都是对象.
所以它们可以有方法.
类的方法就叫类方法.
实例的方法就叫实例方法.
至于静态方法就是写在类里的方法,必须用类来调用(极少数情况下使用,一般都在全局里直接写函数了)

在Date_test类里面创建一个成员函数, 前面用了@classmethod装饰。 它的作用就是有点像静态类,比静态类不一样的就是它可以传进来一个当前类作为第一个参数。

输出:

参考资料:
https://www.zhihu.com/question/20021164
http://blog.csdn.net/bolike/article/details/21554901


下一篇 :

上一篇 :

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

$(document).ready(function(){ $("#article-index").css('display','none');});