python 父类、子类,迭代器、生成器

本文探讨了Python中面向对象编程的特点,包括类的定义、继承与实例化过程。同时,深入解析了迭代器与生成器的工作原理及其实现方式,通过具体代码示例展示了它们的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

python对面向对象的支持程序如何?

python的迭代器和生成器有什么区别和联系?

解决方案:

python可以定义父类、子类,可以定义函数方法和参数。

python的for循环是通过迭代器实现的。

python的生成器需要通过定义一个函数来封装,并结合for循环,返回的是每一次迭代生成的结果。

讨论:

对类的模式需要进一步分析,比如如何定义类,如何解耦合,如何优化类定义。

对生成器需要有特殊场景对应起来,函数定义+for循环的使用方式有些局限,还有没有其他实现方式。




#! usr/bin/env python

# -*- coding: UTF-8 -*-
import os
import re

class A(object):
    "这里是帮助-A"
    param = 1
    def __init__(self):
        print "init A"
        print self.param

class AA(A):
    "这里是帮助-AA"
    param = 1
##    def __init__(self):
##        print "init AA"

def yield1(str1):
    length = len(str1)
    for x in range(length-1, -1, -1):
##        print str1[x]
        yield str1[x]
    print "yield1"
    m = yield " hello "

def main():
    b = AA()
    print b.__doc__
    print "\n迭代器"
    str1 = 'asdjhfkjhasdk'
    iter1 = iter(str1)
    length = len(str1)
    for x in str1:
        print iter1.next()
    try:
        print iter1.next()
##    except BaseException, e:
    except StopIteration, e:
        print e
        pass
    print "\n生成器"
    for x in yield1(str1):
        print x
        
    print u"\n数组倒序"
    print str1
    str1 = list(str1)
    str2 = []
    length = len(str1)
    for i in range(length-1, -1, -1):
        print str1[i]
        str2.append(str1[i])
    str1.reverse()
    print str1
    print str2
    print cmp(str1,str2)



if __name__ == '__main__':
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值