小编Det*_*ant的帖子

如何使用德威从遥控器拉?

如何git pull在python dulwich库中做一些事情.

python git dulwich

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

为什么我们在隐式查找特殊方法时绕过实例属性?

来自Python文档中\xe2\x80\x98数据模型\xe2\x80\x99章节的\xe2\x80\x98新样式类的特殊方法查找\ xe2\x80\x99部分(粗体强调是我的):

\n
\n

对于新式类,只有在 object\xe2\x80\x99s 类型上定义特殊方法的隐式调用才能保证正确工作,而不是在 object\xe2\x80\x99s 实例字典中定义。这种行为就是以下代码引发异常的原因(与旧式类的等效示例不同):

\n
>>> class C(object):\n...     pass\n...\n>>> c = C()\n>>> c.__len__ = lambda: 5\n>>> len(c)\nTraceback (most recent call last):\n  File "<stdin>", line 1, in <module>\nTypeError: object of type \'C\' has no len()\n
Run Code Online (Sandbox Code Playgroud)\n

此行为背后的基本原理在于由所有对象(包括类型对象)实现的许多特殊方法,例如__hash__()和\n 。__repr__()如果这些方法的隐式查找\n使用传统的查找过程,则在类型对象本身上调用时它们将失败:

\n
>>> 1 .__hash__() == hash(1)\nTrue\n>>> int.__hash__() == hash(int)\nTraceback (most recent call last):\n  File "<stdin>", line 1, in <module>\nTypeError: descriptor \xe2\x80\x99__hash__\xe2\x80\x99 of \xe2\x80\x99int\xe2\x80\x99 object needs an argument\n
Run Code Online (Sandbox Code Playgroud)\n

错误地尝试以这种方式调用类的未绑定方法有时被称为 \xe2\x80\x98metaclass\nconfusion\xe2\x80\x99,并且可以通过在查找特殊方法时绕过实例来避免:

\n
>>> type(1).__hash__(1) …
Run Code Online (Sandbox Code Playgroud)

python methods function method-call

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

sqlalchemy ORM:如何给出一些低级规范?

我在sqlalchemy中使用ORM .实际情况是我也使用MySQL数据库,我想设置MySQL必须适合我的项目的一些表配置.(例如mysql_engine='InnoDB',mysql_charset='utf8'等等)

我知道使用SA提供的SQL Expression有一种方法.但我更喜欢使用ORM界面.有任何想法吗?

PS:如何使用'class mytable'表单(使用ORM而不是SQL Expression maker)来产生相同的效果

mysql sqlalchemy

4
推荐指数
1
解决办法
1728
查看次数

Bash引用问题

A="echo 'q'"

$A 
Run Code Online (Sandbox Code Playgroud)

我得到了结果'q'

但如果我直接输入echo'q',那就是q(没有单引号)

所以,我想知道在双引号中面对单引号时bash会遵循什么规则.

最初的问题是

A="curl http://123.196.125.62/send -H 'Host: poj.org' -e http://poj.org/send"

$A
Run Code Online (Sandbox Code Playgroud)

我卷曲了:(6)无法解析主持人'poj.org''

如果我只是在终端输入命令就可以了.

PS我想使用$ A来排除A中的命令

bash

3
推荐指数
1
解决办法
472
查看次数

Python数据模型文档:未绑定的用户定义的方法对象和类方法对象

在参考文献的数据模型中,作者花了很多精力来解释如何创建和操作用户定义的方法 :(参见http://docs.python.org/reference/datamodel.html#the-standard-type-hierarchy和roll下)

获取类的属性时(可能通过该类的实例),如果该属性是用户定义的函数对象,未绑定的用户定义的方法对象或类方法,则可以创建用户定义的方法对象宾语.当属性是用户定义的方法对象时,仅当从中检索它的类与存储在原始方法对象中的类相同或派生类时,才会创建新的方法对象; 否则,原始方法对象按原样使用.

那么未绑定的用户定义的方法对象类方法对象之间的区别是什么?

python oop methods object python-datamodel

3
推荐指数
1
解决办法
1117
查看次数

如何在vim命令式语法中使用变量?

我想编写一个可以将键映射到另一个函数的函数.

但我没有将变量插入map命令:

map a:key :! a:action (其中a:key可能是<F9>,<C-F9>等等)

如何在vim命令式句子中实现这一点?

vim

3
推荐指数
1
解决办法
1463
查看次数

执行'sudo chmod -x /'后,为什么还能恢复root挂载点的权限?

出于好奇,我在终端模拟器(在X上运行)执行了命令'sudo chmod -x /'.并且发现除了切换到控制台并使用root用户登录并更改了权限之外我不能再做了.但是,由于我没有根目录的执行权限,我怎么能设法成功呢?

linux

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

sqlalchemy:Base如何知道我已经定义了一个映射到它的类?

它只是在我和我的班级进行继承时才有效

class User(Base):
    __tablename__ = ’users’
    id = Column(Integer, primary_key=True)
    name = Column(String)
    fullname = Column(String)
    password = Column(String)
Run Code Online (Sandbox Code Playgroud)

然后我就可以使用创建表了 Base.metadata.create_all(engine)

我的问题是,sqlalchemy怎么知道我已经定义了User(继承自Base)?

sqlalchemy

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

如何在没有递归的情况下实现Scheme解释器?

我尝试设计一个非递归的Scheme解释器,使用堆栈和指针在AST上行走并进行评估.

如果我只需要处理纯过程调用,情况就好了.但是,一旦宏出现,不规则的语法就很难编写非递归例程.(因为不同语义的混合)更糟糕的是,当考虑内置宏(如if,conf let等)时,非递归方法似乎变得异常复杂.

关于实现非递归解释器的任何好建议?或者那些材料?我用Google搜索但没有发现任何东西.

而且,我想知道主流的Scheme解释器是否使用这种方法.也许我可以写递归而且不会受到指责.

scheme interpreter

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

Python:Tkinter中的after()是否具有多线程方法?

我正在编写一个物理模拟程序,发现after()非常有用。

我曾经想为物理计算和仿真创建一个线程。但是,当我最终注意到该功能时,我改用了它。

因此,我对Tkinter如何实现该功能感到好奇。是多线程的吗?

python tkinter python-multithreading

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