我查看了整个网络,但未能找到我的问题的答案。我试图理解一些python代码,并遇到了类似这样的类声明:
s_list = []
last_name = ""
def __init__(self, last_name, curr_date, difference):
self.last_name = last_name
self.s_list = {curr_date:difference}
self.d_list = []
self.d_list.append(curr_date)
花括号里面发生了什么?这是初始化字典吗?稍后在主文件中使用它:
n = n_dict[last_name]
n.d_list.append(curr_date)
n.s_list[curr_date] = difference
其中n是用于添加到n_dict的临时字典,其中n_dict是包含该类信息的字典。
为什么使用{:}符号?有没有其他办法可以做到这一点?
任何答案都非常感谢!
答案 0 :(得分:1)
{curr_date:difference}
创建了一个匿名词典。相反,您可以创建一个名称为的字典:
dict_name={}
dict_name[curr_date]= difference
self.s_list=dict_name
此外,您甚至可以使用dict()
创建字典:
self.s_list=dict(curr_date=difference)
还有其他一些方法可以在python中创建字典!
答案 1 :(得分:0)
只是赞美答案,但没有解释令人困惑的代码。 实际上,编写代码非常令人困惑。这涉及全球化和本地化的变量概念。
# This is the global list variable
s_list = []
# this is the global
last_name = ""
def __init__(self, last_name, curr_date, difference):
# Everything define here is localised and will be used first
# pass value from given to last_name (not using above global last_name)
self.last_name = last_name
# This localised assignment make self.s_list a dictionary
self.s_list = {curr_date:difference}
# create another list
self.d_list = []
self.d_list.append(curr_date)
恕我直言,这个例子是某种关于全局vs局部变量的教程,以及错误的命名示例。