《流畅的Python》第8章 8.4.1小节
可变默认值导致的这个问题说明了为什么通常使用None作为接收可变值的参数的默认值。
类名.__init__.__defaults__:查看类中形式参数的默认值
函数名.__defaults__属性:查看形式参数的默认值
#形式参数L是可变类型时隐藏的问题 def add_end(L=[]): L.append('END') return L print("传入参数,正常调用时:") print(add_end([1,2,3])) print(add_end(['a','b','c'])) print("\n不传入参数,使用默认参数调用时:") print("使用默认参数第一次调用:",add_end()) print("使用默认参数第一次调用后此时参数L的默认值变了,不再是[]:",add_end.__defaults__) print("使用默认参数第二次调用与第一次调用返回的结果不同:",add_end())
运行结果:
标签:调用,end,定义,add,参数,可变,print,默认值 From: https://www.cnblogs.com/bravesunforever/p/17364216.html