所以我想说我想写一本字典.我们称之为d.但是有多种方法可以在Python中初始化字典!例如,我可以这样做:
d = {'hash': 'bang', 'slash': 'dot'}
Run Code Online (Sandbox Code Playgroud)
或者我可以这样做:
d = dict(hash='bang', slash='dot')
Run Code Online (Sandbox Code Playgroud)
或者,奇怪的是:
d = dict({'hash': 'bang', 'slash': 'dot'})
Run Code Online (Sandbox Code Playgroud)
或这个:
d = dict([['hash', 'bang'], ['slash', 'dot']])
Run Code Online (Sandbox Code Playgroud)
以及其他多种方式的dict()功能.显然,dict()提供的一件事是语法和初始化的灵活性.但这不是我要问的问题.
说我d只做一本空字典.当我做什么那张Python解释器的幕后d = {}对d = dict()?它只是两种方式来做同样的事情?使用是否{}有额外的电话dict()?是否有一个(甚至可以忽略不计)比另一个更多的开销?虽然这个问题真的完全不重要,但我很乐意回答这个好奇心.
当我调用socket.getsockname()套接字对象时,它返回我机器的内部IP和端口的元组.但是,我想检索我的外部IP.这样做最便宜,最有效的方式是什么?
我最近一直很喜欢Python编程.我来自对C语言编码的强烈热爱的背景,其中一切都可能比它应该更复杂(但至少把头发放在胸前).因此,从C转换到Python以获得不需要大量速度的更复杂的事情,这对于编写项目来说更是一种福音.
然而,就肉眼可以看到的来自括号和圆括号和结构的土地,我遇到了一个小问题:我发现Python难以阅读.
例如,除非我盯着它(我不喜欢这样做),否则下面的文本块很难解读:
if foo:
bar = baz
while bar not biz:
bar = i_am_going_to_find_you_biz_i_swear_on_my_life()
did_i_not_warn_you_biz()
my_father_is_avenged()
Run Code Online (Sandbox Code Playgroud)
问题发生在那个if块:所有的标签然后突然回到一个震动的块感觉几乎令人不安.作为一个解决方案,我开始编写我的Python代码:
if foo:
bar = baz
while bar not biz:
bar = i_am_going_to_find_you_biz_i_swear_on_my_life()
#-- while --
#-- if --
did_i_not_warn_you_biz()
my_father_is_avenged()
Run Code Online (Sandbox Code Playgroud)
而且,由于一些奇怪的原因,这让我更能够阅读自己的代码.但我很好奇:还有其他人遇到我的奇怪问题,找到了更简单的方法来使他们的标签代码更具可读性吗?在我成为一个巨大的习惯之前,我很想知道是否有更好的方法可以做到这一点.