码:
import types
class C(object):
pass
c = C()
print(isinstance(c, types.InstanceType))
Run Code Online (Sandbox Code Playgroud)
输出:
False
Run Code Online (Sandbox Code Playgroud)
检查对象是否为新式类的用户定义类的实例的正确方法是什么?
如果检查对象的类型是否是用户定义的,我想要额外强调.根据文件:
types.InstanceType 用户定义的类
的实例类型.
好吧 - 不是"正确"的方式也可以.
还注意到set模块中没有类型types
在Python中我们可以这样做:
if True or blah:
print("it's ok") # will be executed
if blah or True: # will raise a NameError
print("it's not ok")
class Blah:
pass
blah = Blah()
if blah or blah.notexist:
print("it's ok") # also will be executed
Run Code Online (Sandbox Code Playgroud)
考虑以下代码:
#!/usr/bin/env python
# coding=utf-8
from string import letters
def filter_upper(letters):
for letter in letters:
if letter.isupper():
yield letter
def filter_selected(letters, selected):
selected = set(map(str.lower, selected))
for letter in letters:
if letter.lower() in selected:
yield letter
def main():
stuff = filter_selected(filter_upper(letters), ['a', 'b', 'c'])
print(list(stuff))
main()
Run Code Online (Sandbox Code Playgroud)
这是从发电机构建的管道的图示.我经常在实践中使用这种模式来构建数据处理流程.这就像UNIX管道.
将生成器重构为每个暂停执行的协同程序的最优雅方法是什么yield?
我的第一次尝试是这样的:
#!/usr/bin/env python
# coding=utf-8
import asyncio
@asyncio.coroutine
def coro():
for e in ['a', 'b', 'c']:
future = asyncio.Future()
future.set_result(e)
yield from future
@asyncio.coroutine
def coro2():
a = yield …Run Code Online (Sandbox Code Playgroud) 我有 Alembic 迁移,它声明了这样的外键约束:
op.create_table(
'that',
...
Column('this_id', String),
ForeignKeyConstraint(['this_id'], ['this.id'])
...
)
Run Code Online (Sandbox Code Playgroud)
我的项目需要支持两个数据库——PostgreSQL 和 MySQL。由于约束的名称没有定义,每个数据库都会自动生成它。在 MySQL 中它看起来像this_ibfk_1,在 Postgres 中看起来像that_this_id_key.
现在我需要编写一个迁移来删除约束。但考虑到我不知道它的名字,我该如何引用它呢?
在Celery文档中,有一个检查执行任务的示例:
您可以使用active()获取活动任务列表:
Run Code Online (Sandbox Code Playgroud)>>> i.active() [{'worker1.example.com': [{'name': 'tasks.sleeptask', 'id': '32666e9b-809c-41fa-8e93-5ae0c80afbbf', 'args': '(8,)', 'kwargs': '{}'}]}]
但是这个调用只返回由参数获得的参数表示repr().有没有办法获得序列化的任务参数?
可能重复:
Python'self'解释
我正在学习Python,对于来自这个类的方法的访问类变量,我有一个问题,理论上比实际上更多.
例如,我们有:
class ExampleClass:
x = 123
def example_method(self):
print(self.x)
Run Code Online (Sandbox Code Playgroud)
为什么必须准确写出self.x,而不仅仅是x?x属于类的命名空间,使用它的方法也属于它.我错过了什么?这种风格背后有什么理由?
在C++中,您可以编写:
class ExampleClass {
public:
int x;
void example_method()
{
x = 123;
cout << x;
};
};
Run Code Online (Sandbox Code Playgroud)
它会工作!
我试图将此解决方案应用于MySQL DB中具有重复项的表中的数据.我得到这样的错误:
SQL Error [1093] [HY000]: You can't specify target table 'NAME' for update in FROM clause
DELETE NAME FROM NAME
WHERE NAME.id NOT IN
(SELECT MIN(id)
FROM NAME GROUP BY col1, col2)
Run Code Online (Sandbox Code Playgroud)
也尝试过分配别名 - 但没有成功.这个错误的原因是什么?它通常指出SQL脚本可以产生循环过程,但在这里我实际上没有看到任何与此相关的 - 很明显,两个选择for DELETE和for SELECT是分离的 - 引擎必须SELECT 首先执行一次然后在WHERE条件中使用它DELETE.那么 - 为什么会发生这种错误,我怎样才能实际删除我的表格?=)
我在INT中的时间戳中有一个测量时间的列,我需要一小时的间隔组数据.我已经发现了MySQL函数FROM_UNIXTIME(),但MySQL中是否有内部工具从这个函数的结果中提取小时?
如前所述这里对象与OneToOne关系到其他模型的模型自动创建.因此,如果我将Model1与O2O连接到Model2,并且将创建具有pk = 1的Model2的对象,则将自动创建Model2与model2_id = 1的对象.然后,如果我将数据从DB转储到json,我将有两个这些对象的记录.如果我将尝试将此数据加载到DB,loaddata它将失败,因为Model2的对象将被创建两次,它将导致唯一的索引违规和IntegrityError.
有人找到了理智的解决方案吗?
ps
我使用Django 1.3.7
python ×7
mysql ×3
sql ×2
alembic ×1
boolean ×1
celery ×1
class ×1
database ×1
datetime ×1
django ×1
generator ×1
namespaces ×1
oop ×1
persistence ×1
postgresql ×1
python-2.x ×1
scope ×1
shelve ×1
sqlalchemy ×1