Python Dict w/作为参数传递的数组值?
好的,我有一个dict,它的键指向一个5个值的数组。我将这5个值传递给一个类,以整理并向我提供信息等 主要 所以,这是可行的,但我的问题是,有没有更好的方法来提取数组以传递给“武器”类,或者我只需要Python Dict w/作为参数传递的数组值?,python,dictionary,parameters,key-value,Python,Dictionary,Parameters,Key Value,好的,我有一个dict,它的键指向一个5个值的数组。我将这5个值传递给一个类,以整理并向我提供信息等 主要 所以,这是可行的,但我的问题是,有没有更好的方法来提取数组以传递给“武器”类,或者我只需要“wepstats[0]、wepstats[1]”等?还是有更好的办法?我洗耳恭听,因为我只是在学做这件事 class Main(): def weaponDamage(self): #print 15 * 2.22 wdb = WeaponDB()
“wepstats[0]、wepstats[1]”
等?还是有更好的办法?我洗耳恭听,因为我只是在学做这件事
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 ):
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中,不应该有get…
函数,只需引用wep.name
而不是wep.getWeaponName()
嗯,我会记住这一点,谢谢。这是有道理的。我是在做练习。我仍然在积极地适应像对象和返回值这样的事情。
>>> sword.name
'Sword'
>>> sword.high
5
>>> sword.low
55