xml地图|网站地图|网站标签 [设为首页] [加入收藏]

Python_建造者模式,python建造模式

时间:2020-01-04 21:39来源:计算机
Python_建造者模式,python建造模式 #!/usr/bin/python# -*- coding:utf-8 -*-#建造者基类class PersonBuilder(): def BuildHead(self): pass def BuildBody(self): pass def BuildArm(self): pass def BuildLeg(self): pass#胖子class Pers

Python_建造者模式,python建造模式

#!/usr/bin/python
# -*- coding:utf-8 -*-

#建造者基类
class PersonBuilder():
    def BuildHead(self):
        pass

    def BuildBody(self):
        pass

    def BuildArm(self):
        pass

    def BuildLeg(self):
        pass

#胖子
class PersonFatBuilder(PersonBuilder):
    type = u'胖子'
    def BuildHead(self):
        print u'构建%s的头' % self.type

    def BuildBody(self):
        print u'构建%s的身体' % self.type

    def BuildArm(self):
        print u'构建%s的手' % self.type

    def BuildLeg(self):
        print u'构建%s的脚' % self.type


#瘦子
class PersonThinBuilder(PersonBuilder):
    type = u'瘦子'
    def BuildHead(self):
        print u'构建%s的头' % self.type

    def BuildBody(self):
        print u'构建%s的身体' % self.type

    def BuildArm(self):
        print u'构建%s的手' % self.type

    def BuildLeg(self):
        print u'构建%s的脚' % self.type

#指挥者
class PersonDirector():
    pb = None;
    def __init__(self, pb):
        self.pb = pb

    def CreatePereson(self):
        self.pb.BuildHead()
        self.pb.BuildBody()
        self.pb.BuildArm()
        self.pb.BuildLeg()

def clientUI():
    pb = PersonThinBuilder()
    pd = PersonDirector(pb)
    pd.CreatePereson()

    pb = PersonFatBuilder()
    pd = PersonDirector(pb)
    pd.CreatePereson()
    return

if __name__ == '__main__':
    clientUI();

 

python中生成器的一个问题

这个函数用的递归,既然是递归,就要有结束递归的条件

就按你举得例子

第一次是:
x = [[1,2],[3,4],[5,6]]

第二次dd(i)时:
x = [1,2]

第三次:
x = 1

这时,for i in x 显然要报异常  

python生成器问题

生成器就是用来生成有规律的值的
含有yield语句的函数就是生成器,counter(5)表示用参数start_at=5为初值调用生成 器,将函数对象赋值给count,count指向生成 器对象
每次调用生成器的next方法,就执行代码到yield语句处返回yield后的值,因此第一次调用 执行到yield返回 ,下次调用 next时从上次执行处接着执行到yield语句处,所以生成器中可以用while True语句不用担心死循环

yield这个表达式的值就是None,所以val一直是None  

#!/usr/bin/python# -*- coding:utf-8 -*-#建造者基类class PersonBuilder(): def BuildHead(self): pass def BuildBody(self): pass def Bu...

编辑:计算机 本文来源:Python_建造者模式,python建造模式

关键词: