Python內建方法的應用 紙牌遊戲

2022-07-24 21:33:19 字數 1190 閱讀 8611

import

json

card=namedtuple('

card

',['

tank

','suit'])

class

deck:

__tanks=[str(n) for n in range(2,11)]+list('

jqka')

__suits=['

黑桃','

紅心','

方塊','梅花'

]

def__init__

(self):

self.

__card=[card(tank,suit) for tank in self.__tanks

for suit in self.__suits

]

def__getitem__

(self, item):

return self.__card

[item]

def__setitem__

(self, key, value):

self.

__card[key]=value

def__str__

(self):

return json.dumps(self.__card,ensure_ascii=false)

def__len__

(self):

return len(self.__card)#

1.檢視所有牌.實現print(),前提是重新的__str__方法

deck=deck()

print

(deck)

#2.通過choice,抓一張牌,前提是重新實現了__getitem__方法.因為choice只能呼叫序列化seq的物件。且

#而實現seq物件的內建方法是__getitem

from random import

choice

print(choice(deck[5]))

#3.通過shuffle,洗牌。洗牌一樣是只有呼叫序列化seq物件,即要重新實現__setitem__方法,同時洗牌要建立在有長度的情況。

#故要重新實現len方法

from random import

shuffle

shuffle(deck)

print(deck)

python 內建 Python內建方法大全

新增元素 集合.add 集合.update 一次新增多個值 集合隨機刪除 集合.pop 集合刪除指定元素 集合.remove 沒有找到會奔潰 集合.discard 沒有找到不會奔潰 移除空白 strip 取字串兩邊空格 lstrip 取字串左邊空格 rstrip 取字串右邊空格 括號中可以新增引數指...

python內建 python內建方法總結

注意 內建函式id 可以返回乙個物件的身份,返回值為整數。這個整數通常對應與該物件在記憶體中的位置,但這與python的具體實現有關,不應該作為對身份的定義,即不夠精準,最精準的還是以記憶體位址為準。is運算子用於比較兩個物件的身份,等號比較兩個物件的值,內建函式type 則返回乙個物件的型別 以下...

python的內建方法

最近需要重新定義類,老是會忘記python內建方法的的作用和名稱,mark一下加深一下記憶。基本上python的常見內建方法如下面所示 內建方法說明 init self,初始化物件,在建立新物件時呼叫 del self 釋放物件,在物件被刪除之前呼叫 new cls,args,kwd 例項的生成操作...