Python object initialization bug. Or am I misunderstanding how objects work?

后端 未结 5 868
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-23 15:29
  1 import sys
  2 
  3 class dummy(object):
  4     def __init__(self, val):
  5         self.val = val
  6 
  7 class myobj(object):
  8     def __init__(self, resourc         


        
5条回答
  •  不知归路
    2021-01-23 16:06

    You should change

    def __init__(self, resources=[]):
        self._resources = resources
    

    to

    def __init__(self, resources=None):
        if resources is None:
            resources = []
        self._resources = resources
    

    and all will be better. This is a detail in the way default arguments are handled if they're mutable. There's some more information in the discussion section of this page.

提交回复
热议问题