[英]copy list inside function python
我对这段代码感到沮丧,我读了一些文章,但似乎我没有弄清楚:
class c:
def __init__(self):
self.k = [9, 8]
def a(x):
k = c()
x = k.k
l = [1, 9]
a(l)
print l # expects [9, 8], got [1, 9]
更新后,我发现了一种相当无赖的方式:
class c:
def __init__(self):
self.k = [9, 8]
def a(x):
k = c()
for i in reversed(x):
x.remove(i)
for i in k.k:
x.append(i)
l = [1, 9]
a(l)
print l # output [9, 8]
这是我很难告诉你正在尝试做的。 让我做一些假设,并指出一些要点。
您更正的代码:
class C: # by convention, Python classes are capitalized...
def __init__(self):
self.k = 10
def a(self, x): # you need 'self' to refer to what instance
x[1] = self.k
现在您可以做我想做的事情:
>>> c=C() # you need an instance of that object
>>> li=[1,2]
>>> c.a(li)
>>> li
[1, 10]
属性k
与c
具有相同的作用域,因此,如果您希望.k
为全局.k
,请使c
全局.k
:
>>> c.k
10
>>> c.k=22
>>> c.k
22
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.