繁体   English   中英

复制列表里面的函数python

[英]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]

属性kc具有相同的作用域,因此,如果您希望.k为全局.k ,请使c全局.k

>>> c.k
10
>>> c.k=22
>>> c.k
22

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM