Python 类的定制

原创 2018年04月16日 18:29:20

class Student():
    def __init__(self,name):
        self.name = name
        self.a,self.b = 0,1
        self.ls = ['a','b','c','d','e']

    def __str__(self):  #目的就是返回一个值给调用处
        return self.name

    def __iter__(self):  #实例本身就是迭代对象,所以这里要返回自己
        return self
    def __next__(self):  #设置for循环的返回值
        self.a,self.b = self.b,self.a + self.b  #计算下一个值
        if self.a >100000:
            raise StopIteration() #退出循环条件
        return self.a  #返回下一个值

    def __getitem__(self, item):  #这个方法就是为了将实例对象变成一个可以像列表那样通过索引取值
        # return self.ls[item]    #根据本身定义的列表然后再根据传入的索引取出相对应的值
        # 下面的方法是添加了切片的方法
        if isinstance(item,int):
            return self.ls[item]
        if isinstance(item,slice):
            #其中slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。
            # start -- 起始位置 stop -- 结束位置 step -- 间距
            #class slice(start, stop[, step])
            start = item.start
            stop = item.stop
            step = item.step
            if step is None:
                step = 1
            if start is None:
                start = 0
            l = []
            for i in range(start,stop,step):
                l.append(self.ls[i])
            return l

s = Student('lisi')
# print(Student('zhanghua'))
# print(s)
# for n in s:
#     print(n)

print(s[1])
print(s[:4:2])  #使用步距的切片方式
print(s[2:4])
new_list = ['a','b','c','d','e','f']

# 使用枚举类型,返回key与value
for i,val in enumerate(new_list):
    print(i,val)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haeasringnar/article/details/79964417

【Python】第二周Python基础(下)

-
  • 1970年01月01日 08:00

【Python基础】Python面向对象 - 4 - 定制类的特殊方法

在设计类的过程中,若想要类表现出一些特殊行为或者能够响应某些内建函数或操作符,那么就需要构建一些特殊方法。这些特殊方法的标识是方法名以双下划线(__)开头和结尾;除了常用的构造器__init__()外...
  • robinjwong
  • robinjwong
  • 2015-09-11 01:37:59
  • 1065

python中的用来定制类的特殊方法的含义

摘自《python核心编程》13.13节,用特殊方法定制类 基本定制型 C.init(self[, arg1, …]) 构造器(带一些可选的参数) C.new(self[...
  • lcj200813138020
  • lcj200813138020
  • 2016-03-26 01:19:21
  • 471

python学习(7)定制类的特殊方法

形如__xxx__的函数是类的特殊方法。 常需要修改的特殊方法有下面这些:
  • qq_18738333
  • qq_18738333
  • 2016-03-03 23:54:36
  • 805

Python学习笔记——定制类

个人理解,如有错误请指正!共同学习,一起进步学到定制类时,看到一段代码class Chain(object): def __init__(self,path=""): self...
  • ChenTianSaber
  • ChenTianSaber
  • 2016-08-16 17:25:42
  • 675

[Python]用来定制类的特殊方法

摘自《python核心编程》13.13节,用特殊方法定制类 表 13.4 用来定制类的特殊方法 基本定制型                                             ...
  • sicofield
  • sicofield
  • 2013-03-04 21:28:08
  • 1575

python中实现定制类的特殊方法总结

这篇文章主要介绍了python中实现定制类的特殊方法总结,本文讲解了__str__、__iter__、__getitem__、__getattr__、__call__等特殊方法,需要的朋友可以参考下 ...
  • bluehawksky
  • bluehawksky
  • 2015-11-12 18:14:30
  • 332

《Python核心编程》第13章 面向对象编程 练习

13-3.对类进行定制。 写一个类,用来将浮点型值转换为金额。 class MoneyFmt(object):     def __init__(self, value=0.0):      ...
  • masm32v9
  • masm32v9
  • 2014-06-03 17:19:32
  • 1456

python 学习--定制类

# python 定制类 class DStudent(object): # 初始化参数,类似于c# 和 java中的构造函数 # 没有'_'表示是公有字段外部可以访问 # 一...
  • W3Chhhhhh
  • W3Chhhhhh
  • 2016-10-20 11:26:24
  • 126

Python学习29:使用特殊的方法定制类(类似于c++的运算符重载)

使用Pythonde 特殊方法可以实现:    模拟
  • jiezhj
  • jiezhj
  • 2014-08-01 13:29:31
  • 479
收藏助手
不良信息举报
您举报文章:Python 类的定制
举报原因:
原因补充:

(最多只允许输入30个字)