本文主要是对python中的面向对象做了初步的学习,并将其与C++中的类做了简单的对比。如有错误,请评论指出,谢谢! ...
分类:
编程语言 时间:
2019-10-07 19:49:17
阅读次数:
124
python中 __slots__ 由于Python是动态语言,任何实例在运行期都可以动态地添加属性。 如果要限制添加的属性,例如,Student类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现。 顾名思义,__slots__是 ...
分类:
编程语言 时间:
2019-10-06 13:32:54
阅读次数:
73
python中 __str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): 1 class Person(object): 2 def __init__(self, name, gender): 3 self.name = name 4 self.ge ...
分类:
编程语言 时间:
2019-10-05 20:38:52
阅读次数:
93
python中 __len__ 如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。 要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。 例如,我们写一个 Students 类,把名字传进去: 1 class Students(ob ...
分类:
编程语言 时间:
2019-10-05 20:25:21
阅读次数:
90
python中 __cmp__ 对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法 __cmp__(): 1 class Student(object): 2 d ...
分类:
编程语言 时间:
2019-10-05 20:19:19
阅读次数:
89
python中多重继承 除了从一个父类继承外,Python允许从多个父类继承,称为多重继承。 多重继承的继承链就不是一棵树了,它像这样: 1 class A(object): 2 def __init__(self, a): 3 print 'init A...' 4 self.a = a 5 6 ...
分类:
编程语言 时间:
2019-10-05 18:35:18
阅读次数:
90
python中获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: 1 class Person(object): 2 def __init__(self, name, gender): 3 self.na ...
分类:
编程语言 时间:
2019-10-05 18:28:36
阅读次数:
88
python中定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用? 虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。 实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实 ...
分类:
编程语言 时间:
2019-10-05 16:19:09
阅读次数:
87
python中继承一个类 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: 1 class Person(object): 2 def __init__(self, name, gender): 3 self.name = name 4 s ...
分类:
编程语言 时间:
2019-10-05 16:08:21
阅读次数:
75
python中定义类方法 和属性类似,方法也分实例方法和类方法。 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。 要在class中定义类方法,需要这么写: 1 class Person(object): 2 count = 0 3 @classmethod 4 def ...
分类:
编程语言 时间:
2019-10-05 12:39:50
阅读次数:
98