list作为类的实例化参数

来源:5-1 python中的序列分类

prosmail

2021-02-16

class A:
    def __init__(self, co_list):
        self.co_list = co_list

    def run(self):
        for i in range(5):
            self.co_list.append(i)
l = []
a = A(l)
a.run()
print(a.co_list)
print(l)

运行结果为:
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]

老师您好,有个问题想请教一下。如上代码,“类A”的实例化方法“run”操作的是实例变量“self.co_list”,为什么全局变量“l”也被修改了。期待您的回复。谢谢。

写回答

1回答

bobby

2021-02-17

这个其实就是参数的传递方式了, 当你__init__(self, co_list):这里实例化的时候就是把外部的l传递进去,并不会新生产一个list对象,所以实际上是指向同一个对象

0
1
prosmail
非常感谢!
2021-02-17
共1条回复

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2131 学习 · 552 问题

查看课程