我了解都__init__和__new__工作.我想知道是否有什么__init__可以做到的__new__不可以?
即可以使用__init__以下模式替换:
class MySubclass(object):
def __new__(cls, *args, **kwargs):
self = super(MySubclass, cls).__new__(cls, *args, **kwargs)
// Do __init__ stuff here
return self
Run Code Online (Sandbox Code Playgroud)
我问,因为我想让Python OO的这个方面更适合我.
这:对象状态简介列出了存在于数据库中/存在于会话中的四种排列:
transient, pending, persistent & detached
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以查询给定对象以返回对象所处的四种状态中的哪一种?
我尝试过根,_sa_instance_state但找不到任何相关的东西.
谢谢!
在emacs中,在执行诸如此类的操作之后comment-region,将自动取消选择所选区域.
有没有办法禁用这种行为?
我希望在脚本中检测到,无论页面是否以200,404或500等HTTP状态交付,都可能无法控制.
这不可能做到,对吧?
如果我有一个我想要交叉连接的表,我该如何删除重复的行?换句话说,我怎么能做一个"订单无所谓"交叉加入?
所以例如,如果我有一个表T:
field |
-------
A |
B |
C |
Run Code Online (Sandbox Code Playgroud)
我交叉加入自己,所以我没有得到A | 一排
T as t1
cross join
T as t2
on t1.field != t2.field
Run Code Online (Sandbox Code Playgroud)
我会得到以下内容:
field | field
------+-------
A | B
A | C
B | A
B | C
C | A
C | B
Run Code Online (Sandbox Code Playgroud)
但是,对我来说A,B与B,A相同.
有没有一个很好的方法来删除这些重复?换句话说,我希望组合而不是排列.
我想知道是否有办法case用SqlAlchemy 创建一个语句,例如postgresql版本
如果没有简单的方法,也许文字SQL是要走的路?
我做不到:
>>> session.query(
func.count(distinct(Hit.ip_address, Hit.user_agent)).first()
TypeError: distinct() takes exactly 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)
我可以:
session.query(
func.count(distinct(func.concat(Hit.ip_address, Hit.user_agent))).first()
Run Code Online (Sandbox Code Playgroud)
哪个没问题('pageload'db表中的唯一用户数).
这在一般情况下是不正确的,例如,对于下表,将给出1而不是2的计数:
col_a | col_b
----------------
xx | yy
xxy | y
Run Code Online (Sandbox Code Playgroud)
有没有办法生成以下SQL(至少在postgresql中有效)?
SELECT count(distinct (col_a, col_b)) FROM my_table;
Run Code Online (Sandbox Code Playgroud) 我有以下课程:
class MySet(set):
def __init__(self, arg=None):
if isinstance(arg, basestring):
arg = arg.split()
set.__init__(self, arg)
Run Code Online (Sandbox Code Playgroud)
这可以按预期工作(用字符串而不是字母初始化集合).但是,当我想对set的不可变版本执行相同操作时,该__init__方法似乎被忽略:
class MySet(frozenset):
def __init__(self, arg=None):
if isinstance(arg, basestring):
arg = arg.split()
frozenset.__init__(self, arg)
Run Code Online (Sandbox Code Playgroud)
我可以实现类似的东西__new__吗?
sqlalchemy ×4
python ×3
javascript ×2
postgresql ×2
count ×1
cross-join ×1
distinct ×1
dom ×1
emacs ×1
http ×1
immutability ×1
psycopg2 ×1
self-join ×1
set ×1
sql ×1