小编KIA*_*aze的帖子

Python 等式语句 a==b in [c,d,e]

我刚刚遇到一些带有以下语句的 python 代码:

if a==b in [c,d,e]:
    ...
Run Code Online (Sandbox Code Playgroud)

事实证明:

>>> 9==9 in [1,2,3]
False
>>> 9==9 in [1,2,3,9]
True
>>> (9==9) in [1,2,3,9]
True
>>> 9==(9 in [1,2,3,9])
False
>>> True in [1,2,3,9]
True
>>> True in []
False
>>> False in []
False
>>> False in [1,2,3]
False
Run Code Online (Sandbox Code Playgroud)

我是否正确地假设 等于a==b in [c,d,e],因此只有当是 True/False 值列表(a==b) in [c,d,e]时才真正有意义?[c,d,e]

b在我看到的代码始终在列表中的情况下[c,d,e]。那么它是否等同于简单地使用a==b

python python-3.x

5
推荐指数
1
解决办法
114
查看次数

如何通过Qt项目文件将命令的输出作为编译器标志传递?

我正在尝试将"git describe"的输出添加到我的应用程序的about窗口中,因此更容易找出人们使用的应用程序版本.

我可以通过添加以下编译器标志来实现:-DAPP_VERSION ="$(git describe HEAD)"

但由于该项目基于qmake,我想找到一种方法将其放入Qt项目文件中.这可能吗?如果是这样,怎么样?

编辑:我尝试添加以下内容:

QMAKE_CXXFLAGS + = -DAPP_VERSION ="$(git describe HEAD)"

但它只是给了我"-DAPP_VERSION =",所以我想我必须使用一些转义字符,但我不知道哪些和哪里.:/

qt qmake compiler-flags

2
推荐指数
1
解决办法
1712
查看次数

python:类对象列表的问题:所有项都是相同的

可能重复:
Python中的"最小惊讶":可变默认参数

我正在尝试从"fooclass"类创建一个具有不同属性的对象列表,但总是最终得到包含相同值的列表中的所有元素.

这是我运行的代码:

#!/usr/bin/env python

class fooclass():
  def __init__(self,vertices = [[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]):
    self.vertices = vertices

l=[]
print(l)
a=fooclass(); a.vertices[0]=[7,9,9]; l.append(a)
print 'a=', a.vertices
a=fooclass(); a.vertices[0]=[789,9,9]; l.append(a)
print 'a=', a.vertices
print(l[0].vertices)
print(l[1].vertices)
print(l)

l=[]
print(l)
a=fooclass(); a.vertices[0]=[7,9,9]; l.append(a)
print 'a=', a.vertices
b=fooclass(); b.vertices[0]=[789,9,9]; l.append(b)
print 'b=', b.vertices
print(l[0].vertices)
print(l[1].vertices)
print(l[0])
print(l[1])
Run Code Online (Sandbox Code Playgroud)

我得到的输出:

$  python ./class_test2.py
[]
a= [[7, 9, 9], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] …
Run Code Online (Sandbox Code Playgroud)

python class list

2
推荐指数
1
解决办法
1097
查看次数

标签 统计

python ×2

class ×1

compiler-flags ×1

list ×1

python-3.x ×1

qmake ×1

qt ×1