gpt4 book ai didi

Python 字典带有作为参数传递的数组值?

转载 作者:行者123 更新时间:2023-12-01 05:43:43 25 4
gpt4 key购买 nike

好吧,我有一个字典,其中的键指向 5 个值的数组。我将这 5 个值传递给一个类来整理并向我提供信息等。

主要

所以,这是可行的,但我的问题是有没有更好的方法来提取数组以传递给“武器”类,或者我只需要 'wepstats[0],wepstats[1]' ETC?或者有更好的方法来解决这个问题吗?我洗耳恭听,因为我只是在学习做这些事情。

class Main():
def weaponDamage(self):
#print 15 * 2.22

wdb = WeaponDB()
wepstats = wdb.getWeaponStats('Sword')
wep = Weapon(wepstats[0],wepstats[1],wepstats[2],wepstats[3],wepstats[4])
wep2 = Weapon("Sword", 5, 55, 1.55, 2.1)

print wep
print wep2

s = sayThings()

greet = s.Say()

self.crit = wep.getDamageCrtRND()
self.scrit = wep.getDamageSCrtRND()
self.avg = wep.getDamageAvg()
self.high = wep.getDamageHigh()
self.low = wep.getDamageLow()
self.mod = wep.getDamageMod()
self.norm = wep.getDamageNrmRND()
self.name = wep.getWeaponName()

print greet
print "-----------"
print "Name: " + self.name
print "-----------"
print "High: %s" % self.high
print "Low : %s" % self.low
print "Avg : %s" % self.avg
print "Crit: %s" % self.crit
print "--------------------"

字典

编辑:我应该首先以这种方式创建项目数据库吗?有没有更符合逻辑的方法来做到这一点?

class WeaponDB():
"""Here be thine weapons of thy holy might"""

def __init__(self):
self.script = {
'None': "Error: No Weapon stats to get selected.",
'Sword': ("Sword", 5, 55, 1.55, 2.1),
}

def getWeaponStats(self, key = 'None'):
try:
return self.script[key]
except KeyError:
return self.script['None']

使用值作为参数的类

class Weapon():
def __init__(self, name = "Stick", high = 1, low = 0, critMod = 1, scritMod = 2):
self.rng = randNum()
self.name = name
self.high = high
self.low = low
self.critMod = critMod
self.scritMod = scritMod

def getWeaponName(self):
return self.name

def getDamageHigh(self):
return self.high

def getDamageLow(self):
return self.low

def getDamageMod(self):
return self.critMod

def getDamageSMod(self):
return self.scritMod

etc...

最佳答案

如果我理解得很好,你可以这样做:

class Weapon:
def __init__( self, name = 'Stick', high = 1, low = 0 ):
self.name = name
self.high = high
self.low = low

wepstats = ( 'Sword', 5, 55 )

sword = Weapon( *wepstats )

然后,如果你检查你的属性,你会得到:

>>> sword.name
'Sword'

>>> sword.high
5

>>> sword.low
55

使用 *wepstats 将整个元组作为构造函数的参数传递。

关于Python 字典带有作为参数传递的数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16797029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com