首页 > 解决方案 > 可变默认参数允许访问来自其他类实例的数据

问题描述

通过函数中的可选参数,可以访问类的不同实例的数量。(见下面的代码)。我做错了什么,还是这种预期的行为?

Linux、Python 3.7.3 [GCC 7.3.0]

class Cat:
   def __init__(self, name):
       self.name = name
       print(name)

   def my(self,  d = {}):
       print('Before: ',d)
       d[self.name] = str(self.name)
       print('After: ',d)



tiger = Cat('Tiger')
tiger.my()


lion = Cat('Lion')
lion.my()

代码输出为:

Tiger
Before:  {}
After:  {'Tiger': 'Tiger'}
Lion
Before:  {'Tiger': 'Tiger'}
After:  {'Tiger': 'Tiger', 'Lion': 'Lion'}

标签: python-3.xrecursionmemory-leaks

解决方案


推荐阅读