变量作为python数组键,但没有初始化或声明

时间:2019-05-09 04:29:17

标签: python arrays function command-line-arguments

关于

在我在此网站上看到的python代码中

https://amaral.northwestern.edu/blog/function-wrapper-and-python-decorator

代码

def my_add(m1, p1=0):
  output_dict = {}
  output_dict['r1'] = m1+p1
  return output_dic

def my_deduct(m1, p1=0):
  output_dict = {}
  output_dict['r1'] = m1-p1
  return output_dic

我的疑问是,代码

output_dict['r1'] = m1+p1

表示m1 + p1存储在第r1个键的output_dict变量数组中。但是“ r1”在用作键之前既未初始化也未声明。 python不会抛出错误吗?

如果r1是一个变量,它是静态的还是在程序中具有作用域?

3 个答案:

答案 0 :(得分:1)

不,python不会抛出错误,而是它将在output_dict中自动创建一个为其分配值的键

答案 1 :(得分:0)

'r1'只是一个字符串,无需初始化或声明它。

output_dict['r1'] = m1 + p1的意思是:

if 'r1' in output_dict:
    # change output_dict['r1'] to m1 + p1
else:
    # create a 'r1' key in output_dict, 
    # and assign value `m1 + p1` to it

答案 2 :(得分:0)

Car 1 (Required): <error message> OR Car 2: <error message> 只是一个字符串文字,例如"r1""hello",而"hi"所做的是在{中创建一个密钥output_dict['r1'] = m1+p1 {1}},然后将r1分配给一个表达式

一个简单的例子可能是

output_dict

在这里,您看到实例化m1+p1字典后,我分配了键和值对In [42]: dct = {} In [43]: dct['a']='b' In [44]: dct Out[44]: {'a': 'b'} In [45]: dct['c']='d' In [46]: dct Out[46]: {'a': 'b', 'c': 'd'} ,然后分配了dct