Python 为什么在dict.get中运行类init方法get?
为什么两次调用init方法?Python 为什么在dict.get中运行类init方法get?,python,class,Python,Class,为什么两次调用init方法? get方法应该发现键a已经存在,并完全忽略默认部分。在对象作为参数传递之前,表达式将被完全计算。.get函数将忽略该参数,但该对象已在被调用方中创建。如何避免它?最简单的方法是,不要使用.get。检查key是否在dict中,如果不在dict中,则创建该对象。在将该对象作为参数传递之前,将对表达式进行完全求值。.get函数将忽略该参数,但该对象已在被调用方中创建。如何避免它?最简单的方法是,不要使用.get。检查键是否在dict中,如果不在,则创建对象。 class
get方法应该发现键a已经存在,并完全忽略默认部分。在对象作为参数传递之前,表达式将被完全计算。
.get
函数将忽略该参数,但该对象已在被调用方中创建。如何避免它?最简单的方法是,不要使用.get
。检查key是否在dict中,如果不在dict中,则创建该对象。在将该对象作为参数传递之前,将对表达式进行完全求值。.get
函数将忽略该参数,但该对象已在被调用方中创建。如何避免它?最简单的方法是,不要使用.get
。检查键是否在dict中,如果不在,则创建对象。
class Case:
def __init__(self, name):
print('init class instance')
self.name = name
def __str__(self):
return f'Case(fn={self.name})'
d = {'a': Case('fn')}
d.get('a', Case('bbb'))