所以,这是我的问题:我在python中编码,但我需要提高代码中某些部分的性能太慢.一个好的(简单的)解决方案似乎是使用cython; 我试了一下,结果很好.问题是我在我的python代码中使用assert语句.在使用cython之前,我可以使用-OO选项编译我的python代码,这样我就可以提供一个不执行任何断言测试的版本,并且仍然有调试的断言.但是在cython中编译的文件似乎总是执行断言.是否有一些选项可以传递给cython编译以删除(或不删除)断言?
是否可以SQLiteDatabase在insert()内容提供程序的重写方法中调用update方法?
对于我的 AI 课程,我必须使用 alpha-beta 修剪制作一个量子井字游戏。
我正在考虑表示棋盘状态的最佳方法 - 我的第一个直觉是使用一种邻域矩阵,即 9x9 矩阵,onM[i,j]是表示其中移动的整数 (tic-tac -toe) 正方形i并被j标记(如果没有这样的连接 -M[i,j]为零)。M[i,i]如果正方形i折叠,则不为 0 。然后,我会创建一个此类矩阵的博弈树,并使用经典的极小极大与 alpha-beta 修剪。
然而,这种方法似乎非常昂贵——每个节点都会有一个相对较大的分支因子加上基本操作——检查循环并找到 9x9 矩阵的所有等效状态。
我有一种感觉,必须有一个更聪明的解决方案 - 也许将量子游戏视为一组经典的井字棋游戏并使用一种广义的极小极大搜索,所以它都会回归到(小)经典井字棋问题集?我看不出这究竟是如何运作的。
有没有人有这个(或类似的)问题的经验,你能指出我正确的方向吗?
我正在尝试使用textarea表单条目,我有一些javascript代码来计算和限制字符数,其max_length和size是动态的(即这些属性在模型创建后可以改变).
为了在django form textarea小部件中包含此功能,我想我必须创建一个自定义小部件,虽然我不确定如何真正地绑定模板中的javascript代码.为了更改textarea大小,我想我会从视图中将变量传递给表单创建,以生成textarea小部件实例.
否则,现在我只是在html/js中创建模板中的输入,然后将POST数据提交到django视图,并使用getitem检索它,然后将数据直接保存到我的模型中.当然哪个工作,但不是非常django'y,如果没有内置的django验证和干净的数据功能,也许在某种程度上是脆弱的.
所以我猜两个问题: (a) 如果我创建一个自定义django表单小部件,如何将我的javascript函数应用于模板中的textarea字段(包括"onkeypress = jstextcounter ...")和(b)如果我继续只是在没有django表单的情况下检索视图中的帖子数据,是否存在漏洞,我该怎么做才能确保数据得到充分验证?(页面已经要求用户登录,而不是公共评论框)
或者也许某人之前已经创建了这样一个自定义表单窗口小部件并知道某个好的代码片段?
干杯...
编辑 所以感谢MovieYoda的帮助,我得到了这个工作,并阅读了django中的动态表格.使用%d替换,我可以动态更改js函数的maxChars属性.
在forms.py我有:
text=forms.CharField(max_length = 1000, widget=forms.widgets.Textarea())
def __init__(self, *args, **kwargs):
size = kwargs.pop('size')
maxChars = kwargs.pop('maxChars')
super(MyForm, self).__init__(*args, **kwargs)
self.fields['text'].widget.attrs['onkeypress'] = 'return textCounter(this, this.form.counter, %d);' % maxChars
self.fields['text'].widget.attrs['rows'] = size
self.fields['text'].widget.attrs['cols'] = '40'
Run Code Online (Sandbox Code Playgroud)
其中模板中的js函数'textCounter'使用maxChars变量来限制字符数.
<script type="text/javascript">
function textCounter( field, countfield, maxLimit) {
if ( field.value.length > maxLimit )
{
field.value = field.value.substring( 0, maxLimit );
return false;
}
else
{ …Run Code Online (Sandbox Code Playgroud) 我-(void)textFieldDidBeginEditing:(UITextField *)sender在我的应用程序中使用此功能.当我选择文本字段时,不会调用此方法.这是代码......
-(void)textFieldDidBeginEditing:(UITextField *)sender{
if([sender isEqual:txtName])//txtName is the IBOutlet of the UITextField
{
NSLog(@"Name");
}
else{
NSLog(@"NO_Name");
}
}
Run Code Online (Sandbox Code Playgroud) 我应该如何配置映射以避免NHibernate在插入子实体后立即更新我的子实体的外键?
例如,父类的映射如下:
class ParentMap : ClassMap<Parent>
{
public ParentMap()
{
Id(x => x.Id)
.GeneratedBy.Increment();
Map(x => x.Name);
HasMany(x => x.ChildNodes)
.KeyColumns.Add("Parent_id")
.Cascade.All();
}
}
Run Code Online (Sandbox Code Playgroud)
让我们Parent有一堆Child对象:
Parent p = new Parent("test");
p.ChildNodes.AddRange(GetSomeDummyNodes());
Run Code Online (Sandbox Code Playgroud)
保存父实体时,生成的SQL如下所示:
INSERT INTO [Parent] (Name, Id) VALUES (@p0, @p1); @p0 = 'test', @p1 = 0
INSERT INTO [Child] (Name, Id) VALUES (@p0); @p0 = 'child1', @p1 = 0
INSERT INTO [Child] (Name, Id) VALUES (@p0); @p0 = 'child2', @p1 = 1
INSERT INTO [Child] (Name, …Run Code Online (Sandbox Code Playgroud) 在SQLite中,我希望不区分大小写的"SELECT LIKE name"
工作对于普通的拉丁语名称很好,但是当名称是UTF-8且非拉丁字符时,select会变得区分大小写,如何使它也像latin字符一样不区分大小写?
ps我的sqlite是v3,我用PHP PDO连接
我想这样做:
UserLog.objects.filter(user=user).filter(action='message').filter(timestamp__lt=now)[0:5].update(read=True)
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
Cannot update a query once a slice has been taken.
Run Code Online (Sandbox Code Playgroud)
(使用django 1.2.1)
我究竟做错了什么?