gpt4 book ai didi

python - 字典中的函数按值传递

转载 作者:太空宇宙 更新时间:2023-11-03 20:14:03 27 4
gpt4 key购买 nike

我正在尝试编写一个程序来检查字典中的操作并调用与“键”匹配的函数。

该程序将根据“键”是什么来解析该行。

我的问题是,如何将字符串传递到字典调用的函数中,以便该函数可以解析它,因为字符串并不总是相同,而且字符串的解析方式也不会始终相同。

def format1(opline):                                    # r-type: rd, rs, rt
opline = opline.split('', 1)[1] # removes instruction
rd, rs, rt = opline.split() # splits into 3 registers
return rd, rs, rt # returns all registers

inst_match = {'add' : format1} # dictionary (more.
# key/funct pairs
# will be added

instruction_storage = 'add 9 0 255'

instructions = instruction_storage.split()[0] # get key from string

inst_match[instructions](instruction_storage) # passes key to search and string to pass into function

^上面的代码只是一个测试。我最终将从多行文件中读取“instruction_storage”。

最佳答案

我不太清楚你到底想要什么,但这是一个猜测:

def format1(opline, string):
print('format1({!r}, {!r})'.format(opline, string))
opline = opline.split(' ', 1)[1]
rd, rs, rt = opline.split()
return rd, rs, rt

def format2(opline, string):
print('format2({!r}, {!r})'.format(opline, string))
opline = opline.split(' ', 1)[1]
rd, rs, rt = opline.split()
return rd, rs, rt

inst_match = {'add': format1,
'sub': format2}

instruction_storage = [('add 9 0 255', 'string1'),
('sub 10 1 127', 'string2')]

for instruction in instruction_storage:
opline, string = instruction
opcode = opline.split()[0]

try:
inst_match[opcode](opline, string)
except KeyError:
print('unknown instruction: {!r}'.format(opcode))

输出:

format1('add 9 0 255', 'string1')
format2('sub 10 1 127', 'string2')

关于python - 字典中的函数按值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58568489/

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