溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python單利模式,簡(jiǎn)單工廠實(shí)現(xiàn),import自定義模塊

發(fā)布時(shí)間:2020-07-16 18:23:01 來(lái)源:網(wǎng)絡(luò) 閱讀:319 作者:zjy1002261870 欄目:編程語(yǔ)言

import mypackage.ZString as zs
'''
單利模式
'''

class User(object):
__instance = None

def __init__(self, name, age):
    self.name = name
    self.age = age
    print('name=%s,age=%s' % (self.name, self.age))

def __new__(cls, name, age):
    if not cls.__instance:
        cls.__instance = object.__new__(cls)
    return cls.__instance

u1 = User('tom', 18)
u2 = User('jack', 28)

print(u1 == u2)
print(id(u1))
print(id(u2))

'''
工廠模式
'''

class Person(object):
def init(self, name):
self.name = name

def work(self, axe_type):
    print('%s開(kāi)始工作了' % self.name)
    # axe=StoneAxe('花崗巖')
    # axe=SteelAxe('加爵')
    axe = Factory.get_axe(axe_type)
    if not axe == None:
        axe.cut_tree()

class Axe(object):
def init(self, name):
self.name = name

def cut_tree(self):
    print('%s進(jìn)行砍樹(shù)了' % self.name)

class StoneAxe(Axe):
def cut_tree(self):
super().cut_tree() # 子類(lèi)調(diào)用父類(lèi)方法
print('使用石頭做的斧頭砍樹(shù)')

class SteelAxe(Axe):

def cut_tree(self):
    super().cut_tree()  # 子類(lèi)調(diào)用父類(lèi)方法
    print('使用鋼鐵做的斧頭砍樹(shù)')

class Factory(object):

靜態(tài)簡(jiǎn)單工廠方法

@staticmethod
def get_axe(axe_type):
    if axe_type == "stone":
        return StoneAxe('花崗巖')
    elif axe_type == "steel":
        return SteelAxe('加爵')
    else:
        print('你輸入錯(cuò)誤吧')

p = Person('張三')
p.work('steel')

def get_str():
s=None
print(zs.isnull(s))

get_str()

字符串為None時(shí)為T(mén)rue,為空時(shí)也True,否則為False

def isnull(str):
if not str:
return True
elif str.strip() == '':
return True
else:
return False

if name == 'main':
t=None
print(isnull(t))

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI