Python 定制类 特殊方法】的更多相关文章

1.特殊方法 定义在class中 不需要直接调用,python的某些函数或操作符会自动的调用对应的特殊方法. 如定义了person类,使用print p 语句打印person类的实例时,就调用了特殊方法__str__() 此时就需要在person类中实现这个方法. 使用特殊方法时注意: 只需要编写用到的特殊方法 有关联性的特殊方法都必须实现(如__getattr__,__setattr__,delattr__) 2.python中 __str__和__repr__ __str__()用于显示给用…
转载请标明出处: http://www.cnblogs.com/why168888/p/6411919.html 本文出自:[Edwin博客园] Python定制类(进阶6) 1. python中什么是特殊方法 任何数据类型的实例都有一个特殊方法:__str__() 用于print的__str__ 用于len的__len__ 用于cmp的__cmp__ 特殊方法定义在class中 不需要直接调用 Python的某些函数或操作符会调用对应的特殊方法 正确实现特殊方法 只需要编写用到的特殊方法 有关…
python定制类(1):__getitem__和slice切片 1.__getitem__的简单用法: 当一个类中定义了__getitem__方法,那么它的实例对象便拥有了通过下标来索引的能力. class A(object): def __getitem__(self, item): return item a = A() print(a[5], a[12]) 2.用__getitem__实现斐波那契数列: class Fib(object): def __getitem__(self, i…
看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数. 除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类. __str__ 我们先定义一个Student类,打印一个实例: >>> class Student(object): ... def __init__(self, name):…
1.什么是定制类python中包含很多内置的(Built-in)函数,异常,对象.分别有不同的作用,我们可以重写这些功能. 2.__str__输出对象 class Language(object): def __init__(self): self.name = 'Python' print(Language()) 运行结果: class Language(object): def __init__(self): self.name = 'Python' def __str__(self): r…
一:类的方法说明 类的方法分为实例方法,析构方法,构造方法,类方法,静态方法,属性方法,等等 类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用 类方法的隐含调用参数是类,而类实例方法的隐含调用参数是类的实例,静态方法没有隐含调用参数 1)实例方法:类的实例能够使用的方法. 2) 析构方法:类中使用def __init__(self)定义的方法,也就是当该类被实例化的时候就会执行该函数.那么我们就可以把要先初始化的属性放到这个函数里面 3) 构造方法:__del__”就是一个析…
1. dir()查看类的方法和属性 查看slice类的方法和属性 dir(slice) 2.help() 查看某个方法的文档 查看slice类中的indices方法 help(slice.indices)…
1.创建新类Athlete,创建两个唯一的对象实例sarah james,他们会继承Athlete类的特性 >>> class Athlete: def __init__(self,a_name,a_dob=None,a_times=[]): self.name=a_name self.dob=a_dob self.times=a_times >>> sarah=Athlete('Sarah Sweeney','2002-07-02',['2:58','2.34','1…
class Fib(object): def __init__(self): self.a, self.b = 0, 1 def __iter__(self): return self def __next__(self): #如果一个类想被用于for ... in循环,类似list或tuple那样,就必须实现一个__iter__()方法,该方法返回一个迭代对象, # 然后,Python的for循环就会不断调用该迭代对象的__next__()方法拿到循环的下一个值,直到遇到StopIterati…
学习元类的时候,对__prepare__不是很理解,书上讲解的也不是很详细,最后通过查看stackoverflow的一些帖子对该方法有了一些理解,记录如下: 先看代码: class member_table(dict): def __init__(self): self.member_names = [] def __setitem__(self, key, value): if key not in self: self.member_names.append(key) dict.__seti…