class Node():
def __init__(self, value, nex = None):
self.value = value
self.nex = nex
class List(Node):
def __init__(self):
self.head = Node(6)
def ins(self, val):
exec('b = Node(val)')
self.head.nex = b
我的目的是将任何字符串设置为变量名。
答案 0 :(得分:0)
显然它是,因为你的代码有效(虽然我不认为它正在做你打算做的事情,你可能想在List.ins()或其他东西中更改List.head。)
>>> class List(Node):
... def __init__(self):
... self.head = Node(6)
... def ins(self, val):
... exec('b = Node(val)')
... self.head.nex = b
...
>>> x = List()
>>> x.ins('a')
>>> x.head.value
6
>>> x.head.nex.value
'a'
至于将“任何字符串”设置为变量名称,也适用
>>> exec ("%s = %s" % (raw_input(),raw_input()))
a
'b'
>>> a
'b'
但你认真,真的,绝对不应该永远这样做(你几乎不应该使用exec)。它会真正打开你的程序直到被完全劫持。如果您尝试加载配置文件或其他内容,请考虑将这些字符串用作字典键而不是变量名。 “沙盒”的输入。
答案 1 :(得分:0)
@Benny Mackney 我通过使用setattr找到了另一种方法:
Roboto
所以现在我有了从self.n0到self.n9的9个节点 我如何连接它们以便我可以得到: self.head.nex = self.n0 self.n0.nex = self.n1 等...