python学习-定制类

来源:互联网 发布:外国人的聊天软件 编辑:程序博客网 时间:2024/05/16 07:51
#!/usr/bin/env python#-*- coding:utf-8 -*-'定制类'__author__ = 'hui.qian'class Student(object):    def __init__(self,name):        self.name = names = Student('hui.qian')sprint s#添加__str__方法,等同于java中的toString()class Student(object):    def __init__(self,name):        self.name = name    def __str__(self):        return 'Student object(name:%s)' %self.names1 = Student('zuomu.qian')print 's1:'s1print 'print s1:'print s1#添加__repr__,在命令行下直接敲s1显示的和print s1一样class Student(object):    def __init__(self,name):        self.name = name    def __str__(self):        return 'Student object(name:%s)' %self.name    __repr__ = __str__s2 = Student('zuomu.qian')s2print s2#__iter__迭代方法,添加了该方法的对象可以用for..in迭代class Calculate_1(object):    def __init__(self):        self.a=0    def __iter__(self):        return self;    def next(self):        self.a +=1        if self.a>100:            raise StopIteration()        return self.a#for n in Calculate_1():#    print n#__getitem__可让上面的类和list一样,用下标法就可以取出class Calculate_2(object):    def __getitem__(self,n):        a = 0        for x in range(n+1):            a = x+1        return af = Calculate_2()print f[1]print f[3]print f[0]class Calculate_3(object):    def __getitem__(self,n):        if isinstance(n,int):            a = 0            for x in range(n+1):                a = x+1        elif isinstance(n,slice):            L = []            a = n.start            b = n.stop            for x in range(b+1):                if(x>=a+1):                    L.append(x)            return Lf1 = Calculate_3()print f1[0:5]#__setitem__对应于dict#__delitem__删除元素

0 0