在python中只能使用{}而不能使用pass?
当我学习python时,我知道python不需要像java那样使用在python中只能使用{}而不能使用pass?,python,Python,当我学习python时,我知道python不需要像java那样使用{} 如果无事可做,我需要使用pass,例如: if 1>0: pass else: print('no') if 1>0: print() #Or assignment statement,like a=1 else: print('no') if 1>0: {} else: print('no') 但是如果我不想使用pass,我会得到一个错误,我需要使用其
{}
如果无事可做,我需要使用pass
,例如:
if 1>0:
pass
else:
print('no')
if 1>0:
print() #Or assignment statement,like a=1
else:
print('no')
if 1>0:
{}
else:
print('no')
但是如果我不想使用pass,我会得到一个错误,我需要使用其他语句,例如:
if 1>0:
pass
else:
print('no')
if 1>0:
print() #Or assignment statement,like a=1
else:
print('no')
if 1>0:
{}
else:
print('no')
但是写这样的句子只是为了语法正确
如果我不想这样做,我只能使用{}
,例如:
if 1>0:
pass
else:
print('no')
if 1>0:
print() #Or assignment statement,like a=1
else:
print('no')
if 1>0:
{}
else:
print('no')
好的,我终于在python中看到了{}
,所以{}
的含义似乎只是替换传递
除了
pass
的情况外,我不知道在哪里需要它{}
{}
是一个空字典,像{'foo':1,'bar':2}
没有元素。不仅{}
有效。像[]
()
这样的其他东西,或者像0
1
这样的数字都可以
之所以使用它,是因为它只处理一个空字典。并且不分配给任何其他变量:
>>> type({})
<class 'dict'>
>>>
这会引起一个错误。因此,我们必须通过做一些不必要的事情(如
{}
)来占用空间。使用{}这意味着空的dict不是好的做法,如果您不想使用pass,您可以使用。。。在python3中被称为省略号
if 1>0:
...
else:
print('no')
在python中,必须在
if表达式之后有一个块(参见)。块可以是简单语句(冒号后的单个表达式),也可以是一个或多个语句的缩进序列
这基本上可以归结为:“什么是有效声明?”如果你遵循有效声明可以是什么的链条;即使只是一个atom
也是有效的语句。这就是你作为一个原子所体验到的,它包含了大多数文本,比如一个空字符串、一个数字、一个空字典、各种单例None
、True
、False
、省略号
,等等
该语言中包含关键字“pass”的确切目的是在语法要求有块的地方不做任何事情。所提出的所有其他建议和选择都可能有效,但没有为此目的列入语文。这仅仅是其他事情如何运作的副作用。大多数示例都会导致额外的(即使很小)处理和内存开销,其中“pass”被解释器正确地优化为不做任何事情
您可能会发现有人说“您不应该使用pass”或“在代码中使用pass是不好的”。这是因为你不应该什么都不做,因为这是浪费计算。例如,如果只需要if
语句的else
块,则最好将其更改为if not
。查找传入try:except:
块也是一种常见的模式,通常不建议在捕获错误时什么都不做
这并不意味着pass没有完全合法的用例。在布置尚未编写的类和函数时,我一直特别使用pass。这使我能够在实现所有内容之前勾勒出一个类,同时仍然能够在没有语法错误的情况下运行快速测试。当你认为你已经完成了你的代码的时候,快速的按一下ctrl-f键就可以找到任何剩余的pass
语句了,这些语句可能是我刚开始说的“我以后再做”的。有人甚至可能会说这有点松懈,因为如果你碰到一个未完成的区域,实际上提出一个NotImplemented
错误会更好一些,我一直在尝试切换,但这几乎是击键次数的3倍;) {}
并不意味着pass
,实际上您创建了一个空字典。如果您创建了{print(1)}
,它当然是一个集合。但是如果你不使用任何值而使用{}
,它将是一个字典类型({print(1)})
给出集
,类型({})
将给出dict
两个集都可以使用花括号,字典都是{/code>。这取决于如果你做了{'a':1}
,它就会成为一个字典,如果你做了{1,2,3}
,它就会是一个集合。如果你把键:值
对存储在方括号({}
)中,它就是字典,但如果你存储单个元素,它就是它的集合
print(1)
的计算结果为None
,因此本质上类似于{None}
,这是一个集合
“不要使用pass
…坏习惯”我强烈反对pass
是在需要语句时不执行任何操作的正确且唯一正确的方法。这通常是一个迹象,表明您有一个不好的模式,即您在该实例中不需要做任何事情,但是如果您不需要做任何事情pass
,则是执行此操作的标准方法。