Python不保证使用分号来结束语句.那么为什么这个(下面)允许?
import pdb; pdb.set_trace()
Run Code Online (Sandbox Code Playgroud) 根据维基百科的副作用条目,提出异常构成副作用.考虑一下这个简单的python函数:
def foo(arg):
if not arg:
raise ValueError('arg cannot be None')
else:
return 10
Run Code Online (Sandbox Code Playgroud)
调用它将foo(None)始终遇到异常.相同的输入,相同的输出.它是参考透明的.为什么这不是一个纯粹的功能?
例如:
>>> Spoken = namedtuple("Spoken", ["loudness", "pitch"])
>>> s = Spoken(loudness=90, pitch='high')
>>> str(s)
"Spoken(loudness=90, pitch='high')"
Run Code Online (Sandbox Code Playgroud)
我想要的是:
>>> str(s)
90
Run Code Online (Sandbox Code Playgroud)
那就是我希望字符串表示显示响度属性.这可能吗 ?
我正在使用此构造来模拟一组
type MyType uint8
map[MyType]interface{}
Run Code Online (Sandbox Code Playgroud)
然后我添加所有键并将它们映射到nil.
我了解到它也可以使用
map[MyType]struct{}
Run Code Online (Sandbox Code Playgroud)
使用空结构的任何好处interface{}.
>>> a = ['foo.py']
>>> k = ['nice', '-n', '10']
>>> a.insert(0, k)
>>> a
[['nice', '-n', '10'], 'foo.py']
Run Code Online (Sandbox Code Playgroud)
我希望列出k与foo.py子列表相同的级别,而不是子列表.
为什么Django需要引入装饰器classonlymethod?为什么不能重用python classmethod?
我有一个url映射,如下所示:
url(r'^(?P<lang>[a-z][a-z])/$', MyTemplateView.as_view()),
Run Code Online (Sandbox Code Playgroud)
我接受的lang捕获组只有几个值,即:(1)ro和(2)en.如果用户键入http://server/app/fr/,我想将其重定向到默认值http://server/app/en/.
我怎么能这样做,因为MyTemplateView只有一个方法可以返回字典?
def get_context_data(self, **kwargs):
return { 'foo': 'blah' }
Run Code Online (Sandbox Code Playgroud) 该规范说:
常量可以是打字的或无类型的
我对我的理解有点怀疑.在规范中考虑这个例子:
const l = "hi" // l == "hi" (untyped string constant)
const m = string(k) // m == "x" (type string)
Run Code Online (Sandbox Code Playgroud)
规范说:
常量可以通过常量声明或转换显式赋予类型,或者在变量声明或赋值中使用时隐式赋值,或者作为表达式中的操作数使用
通过这个陈述,为什么不l打字,因为它显然是一个不变的声明?
另一个例子更清楚这种行为
type Foo string
func f(a Foo) {}
func main() {
f("sarkozy")
const t = "julie gayet"
f(t)
s := "hollande"
//compile error
// f(s)
f(Foo(s)) // ok
}
Run Code Online (Sandbox Code Playgroud)
f("sarkozy")编译的原因是由于规范中的可分配性的这一陈述?
x是一个无类型常量,可由类型T的值表示.
我的论点如下:
Foo我可以像这样强制类型 Foo("sarkozy") f(s)失败,因为s不是无类型的.from collections import namedtuple
Gaga = namedtuple('Gaga', ['id', 'subject', 'recipient'])
g = Gaga(id=1, subject='hello', recipient='Janitor')
Run Code Online (Sandbox Code Playgroud)
我希望能够获得此列表(保留属性的顺序):
[1, 'hello', 'Janitor']
Run Code Online (Sandbox Code Playgroud)
我可以手动创建这个列表,但必须有一个更简单的方法.我试过了:
g._asdict().values()
Run Code Online (Sandbox Code Playgroud)
但属性不是我想要的顺序.
我通过docker文件中的ENTRYPOINT配置启动mongodb.它工作正常.但是,当我执行时:
docker stop <containerid>
Run Code Online (Sandbox Code Playgroud)
它似乎是在向流程发送SIGTERM.这意味着mongod.lock文件未被清除.如何正常关闭正在运行的docker容器,以便将正确的信号发送到docker中运行的进程?