问题列表 - 第22697页

Python:子类可以重载继承的方法吗?

我正在Google App Engine中制作购物车应用.我有许多派生自基本处理程序的类:

class BaseHandler(webapp.RequestHandler):
    def get(self, CSIN=None):
        self.body(CSIN)
Run Code Online (Sandbox Code Playgroud)

这是否意味着body()每个后代类的方法需要具有相同的参数?这很麻烦.只有一个后代实际使用该参数.那么当我添加新的args时呢?我需要经历并改变每一堂课吗?

class Detail(BaseHandler):
    def body(self, CSIN):

class MainPage(BaseHandler):
    def body(self, CSIN=None): #@UnusedVariable

class Cart(BaseHandler):
    def body(self, CSIN): #@UnusedVariable
Run Code Online (Sandbox Code Playgroud)

python oop google-app-engine refactoring overloading

4
推荐指数
2
解决办法
8174
查看次数

是否可以在PHP中使用array_shift()并获取密钥?

我有一个数组中的文件列表,其中文件名是键,值是最后修改日期(以秒为单位).它们从最旧到最新排序.

文件是glob()'d in,然后使用这种方式排序

asort($fileNameToLastModified, SORT_NUMERIC);
Run Code Online (Sandbox Code Playgroud)

我使用array_shift()来获取最旧的文件.不幸的是,它似乎给了我价值,似乎没有办法获得关键.

这样做的唯一方法是这样的吗?

$keys = array_keys($fileNameToLastModified);

$oldest = array_shift($keys);
array_shift($fileNameToLastModified); // to manually chop the first array member off too.
Run Code Online (Sandbox Code Playgroud)

......还是有内置的方法来做到这一点?

php arrays sorting

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

如何创建Python模块分发以优雅地回退到纯Python代码

我编写了一个Python模块,我有两个版本:纯Python实现和C扩展.我编写了__init__.py文件,以便它尝试导入C扩展,如果失败,它会导入纯Python代码(这是合理的吗?).

现在,我想知道分发此模块的最佳方式是什么(例如写入setup.py),以便有或没有设施的人可以轻松地使用它来构建或使用C扩展,只需运行:

python setup.py install
Run Code Online (Sandbox Code Playgroud)

我的经验有限,但我看到两种可能的情况:

  • 用户没有安装在其计算机上的MS Visual Studio或GCC编译器套件来构建C扩展
  • 用户正在运行IronPython,Jython或CPython以外的任何其他内容.我只使用过CPython.因此,我不确定如何分发此模块,以便它能够顺利运行并且易于在这些平台上安装,如果它们无法使用C扩展.

python software-distribution

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

使用(N)Hibernate的基本模式是什么?

我正在用NHibernate创建一个简单的Windows窗体应用程序,我对我应该如何使用它感到有点困惑.引用手册:

ISession(NHibernate.ISession)

表示应用程序与持久性存储之间的对话的单线程,短期对象.包装ADO.NET连接.ITransaction的工厂.保存持久对象的强制(第一级)缓存,在导航对象图或按标识符查找对象时使用.

现在,假设我有以下情况:

我有一个简单的分类器,它是一个MSSQL表,有两列 - ID(auto_increment)和Name(nvarchar).要编辑此分类器,我创建一个包含单个gridview和两个按钮的表单 - "确定"和"取消".用户几乎可以直接在gridview中编辑表格,当他点击OK时,他所做的更改会持久保存到DB(或者如果他点击取消,则没有任何反应).

现在,我有几个关于如何组织这个的问题:

  1. 我的一生ISession应该怎样?我应该ISession为我的整个应用程序创建一个单独的; 每个表单的一个ISession(应用程序是单线程MDI); 或每个数据库操作/事务的ISession?
  2. NHibernate是否提供某种内置的脏跟踪或者我自己必须这样做?手册在这里和那里提到类似的东西,但没有详细说明.
    1. 这是怎么做到的?
    2. 是不是有巨大的开销?
    3. 它是否与NHibernate的缓存有某种联系?
    4. 这些缓存是什么?
    5. 它们不是特定的单一ISession吗?也就是说,如果我ISession为每笔交易使用一个单独的,它不会打破脏跟踪吗?
    6. 内置脏跟踪如何检测已删除的对象?

nhibernate design-patterns hibernate

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

脚本在命令行中成功执行,但不是作为cronjob执行

我有一个bash脚本,它运行一个ruby脚本来获取我的twitter提要.

## /home/username/twittercron

#!/bin/bash

cd /home/username/twitter
ruby twitter.rb friends
Run Code Online (Sandbox Code Playgroud)

它在命令行中成功运行.

/home/username/twittercron
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其作为cronjob运行时,它运行但无法获取提要.

## crontab -e

*/15 * * * * * /home/username/twittercron
Run Code Online (Sandbox Code Playgroud)

该脚本已经是chmod + x.不知道为什么会这样.有任何想法吗?

ruby bash cron

5
推荐指数
2
解决办法
2815
查看次数

使用PHP substr()和strip_tags()同时保留格式并且不破坏HTML

我有各种HTML字符串,可以剪切到100个字符(剥离的内容,而不是原始的),无需剥离标记,也不会破坏HTML.

原始HTML字符串(288个字符):

$content = "<div>With a <span class='spanClass'>span over here</span> and a
<div class='divClass'>nested div over <div class='nestedDivClass'>there</div>
</div> and a lot of other nested <strong><em>texts</em> and tags in the air
<span>everywhere</span>, it's a HTML taggy kind of day.</strong></div>";
Run Code Online (Sandbox Code Playgroud)

标准修剪:修剪到100个字符和HTML中断,剥离的内容达到~40个字符:

$content = substr($content, 0, 100)."..."; /* output:
<div>With a <span class='spanClass'>span over here</span> and a
<div class='divClass'>nested div ove... */
Run Code Online (Sandbox Code Playgroud)

剥离的HTML:输出正确的字符数,但显然会丢失格式:

$content = substr(strip_tags($content)), 0, 100)."..."; /* output:
With a span over here and a nested div …
Run Code Online (Sandbox Code Playgroud)

html php substr strip-tags

41
推荐指数
5
解决办法
3万
查看次数

窗口停用消息?

WM_ACTIVATE(窗口停用消息)的反义词是什么?

windows winapi

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

非静态方法mysqli :: init()不能静态调用

http://php.net/manual/en/mysqli.init.php

$ConnectionResource = mysqli::init();
Run Code Online (Sandbox Code Playgroud)

上面的代码失败了:

致命错误:非静态方法mysqli :: init()无法静态调用

怎么会?

php mysqli

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

Google App Engine如何预编译Java?

App Engine使用"预编译"过程和应用程序的Java字节码来增强Java运行时环境中应用程序的性能.预编译代码的功能与原始字节码相同.

有什么详细信息吗?

java performance google-app-engine bytecode compilation

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

删除窗口边框?

我有一个窗口,周围有一个坚固的边框.如何使用SetWindowLongGetWindowLong删除边框(所有非客户区域)?

winapi getwindowlong setwindowlong

28
推荐指数
3
解决办法
6万
查看次数