第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

基本和當前與基本和偏移?

基本和當前與基本和偏移?

牛魔王的故事 2021-03-12 14:11:25
我有一個Attribute類,可以表示類似speed或的不同屬性armor。Attribute具有base,offset和和current值。這是使用示例最容易解釋的示例,我將使用它speed作為示例。speed = Attribute()。現(xiàn)在速度已經(jīng)base很有價值,它就是玩家移動的速度。當我為球員配備更好的跑鞋時,他可獲得50的額外速度。這意味著offset下注將設置為50?,F(xiàn)在,當有人拋出使您減速10的咒語時,偏移量將變?yōu)?0 - 10 = 40。屬性類如下所示:class Attribute(object):    def __init__(self, base):        self.base = base        self.offset = 0    @property    def current(self):        return self.base + self.offset    @current.setter    def current(self, value):        self.offset = 0 - (self.base - value)現(xiàn)在,一個其他的方式來表示,這將是使用base,并current與具有offset作為一個屬性:class Attribute(object):    def __init__(self, base):         self.base = base         self.current = base    @property    def offset(self):         return 0 - (self.base - self.current)    @offset.setter    def offset(self, value):         self.current = self.health + value它們兩者都以完全相同的方式工作,是否有理由在一個之上使用另一個?
查看完整描述

2 回答

?
至尊寶的傳說

TA貢獻1789條經(jīng)驗 獲得超10個贊

這完全取決于您對哪種操作進行更多的調(diào)整。您改變的current頻率是否比改變的頻率高offset?Python中沒有首選的方法,但是程序中可能有一種方法。


根據(jù)您的示例,似乎您正在創(chuàng)建一個人們與他人互動的游戲。您提到了armor,speed玩家,并且被減速咒語擊中。當你的球員得到由咒語放緩,你不想設置自己speed的東西,你想減少它。使用偏移量很容易做到這一點,這正是它的用途。但是,這也可以使用current來完成,并且兩者的代碼完全相同,即使含義不同:speed.current -= 10。


如果您想做一個相對較慢的動作(例如,將他的速度降低10%,而不是10mph),則可能會再次使用當前值:speed.current *= 0.9。再一次,這兩個都可以通過以下offset版本實現(xiàn):


speed.offset -= 10 // reduce by 10

speed.offset = speed.current * 0.9 - speed.base // reduce by 10%

正如我們在此處看到的那樣,使用current相對緩慢可以使代碼更易于閱讀,并且大多數(shù)人會speed.current -= 50比看到更明顯speed.offset -= 50。current在進行相對緩慢的操作時,它的使用速度也更快,因為計算出的東西更少。


因此,您可能經(jīng)常需要兩者,而且兩者都不比另一個優(yōu)越。我仍然會說和Crocker所說的一樣,與一起使用current,可能對每個人都更容易理解,并且在進行相對減慢時會更清潔。


查看完整回答
反對 回復 2021-03-26
?
BIG陽

TA貢獻1859條經(jīng)驗 獲得超6個贊

我更喜歡第一個變體,其中baseoffset是實際值,current是計算出的有效值。但是,我不會添加設置器,因為該設置器應設置基本值還是偏移量是不確定的。請將有效值保留為只讀。

另外,我至少會考慮將修飾符做成一個列表,這樣可以更容易實現(xiàn)和調(diào)試??紤]增加速度的運動鞋,給+50。然后,喝一點藥水,給予+ 10%。然后您再次脫下運動鞋,最后藥水用完了。如果您使用此方法使此代碼正確,那么它將在修改屬性的位置將所有邏輯都包含在屬性的外部。這只是我的直覺,您必須自己做出決定,因為只有您知道真正的代碼及其應采取的措施。


查看完整回答
反對 回復 2021-03-26
  • 2 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號