对python语法感到困惑

对python语法感到困惑,python,dictionary,syntax,notation,Python,Dictionary,Syntax,Notation,我已经浏览了所有的网页,但没有找到我的问题的答案。我试图理解一些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.app

我已经浏览了所有的网页,但没有找到我的问题的答案。我试图理解一些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
花括号里发生了什么?这是字典吗?稍后在主文件中,它的使用方式如下:

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是包含类信息的字典

为什么使用{:}符号?有没有其他方法可以做到这一点


非常感谢您的回答

{curr\u date:difference}
创建了一个匿名词典。您可以创建一个名称为:

dict_name={}
dict_name[curr_date]= difference
self.s_list=dict_name
此外,您甚至可以使用
dict()
创建字典:

self.s\u list=dict(当前日期=差异)


还有其他一些方法可以用python创建字典

只是恭维一下答案,这并不能解释令人困惑的代码。 事实上,编写的代码相当混乱。这涉及到全球化和本地化的变量概念

# 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)

我想,这个例子是一个关于全局变量和局部变量的点式教学教程,还有一些不好的命名例子。

是的,
{curr\u date:difference}
初始化字典。它也可以写成
dict(((curr\u date,difference),)
。公平地说,
s\u list
对于字典来说是一个非常糟糕的名字。Python不太了解它,但它使下一个开发人员更难理解正在发生的事情。“字典文字”,而不是“匿名字典”。
dict_name
,而不仅仅是
dict
。还有:“有名字的字典”。它不是这样工作的:
AttributeError:“dict”对象没有属性“name”
。您刚刚用dict对象初始化了一个变量。这并不意味着这个dict对象的名字是我的错,这是笔误。我已经编辑了我的答案,谢谢!