美国橄榄球协会的节录,Python

2024-06-25 06:32:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一种从一点到另一点的删节方法。在

我创建了一个具有当前边缘的NFA

EDGES = [
(0, 'h', 1),
(1,'a',2),
(2,'z', 3),
(3,'a',4),
(4, 'r', 5),
(5, 'd', 6)
)]

我要做的事情的例子 nrec("h-rd", nfa, 1)应返回accept

nrec是为NFA处理字符串并检查它是接受还是拒绝的方法。在

^{pr2}$

我需要添加一个方法,把删节纳入帐户。我不太确定如何从一个州跳到另一个州。 这是NFA课程的内容:

def __init__(self,start=None, finals=None, edges=None):
    """Read in an automaton from python shell"""
    self.start = start
    self.edges = edges
    self.finals = finals
    self.abrs = {}

我曾想过使用abr,但在试图定义我自己的abr时,我经常会犯错误,比如

nfa = NFA(
start = 0,
finals = [6],
abrs = {0:4, 2:5},
edges=[
(0,'h', 1),
(1,'a', 2),
(2,'z', 3),
(3,'a', 4),
(4,'r', 5),
(5,'d', 6)
])

我收到错误“TypeError:init()得到意外的关键字参数'abrs'” 为什么我会收到那个错误?在

我想我会做这样的修改

 elif char is tape[index]:
 #get the next char in tape tape[index+1] so
 #for loop this.char with abrs states and then continue from that point.

明智的选择还是更好的解决方案?在


Tags: 方法infromselfnoneinitstartfinals
1条回答
网友
1楼 · 发布于 2024-06-25 06:32:59

此错误是由于__init__没有接受定义的abrs关键字参数。在

def __init__(self,start=None, finals=None, edges=None):

您需要abrs=None(或其他值)使其成为关键字参数,或abrs使其成为必需参数。在

相关问题 更多 >