小编ts.*_*ts.的帖子

'AND'vs'&&'作为运营商

我有一个代码库,开发人员决定使用ANDOR不是&&||.

我知道运营商的优先级(&&之前and)有所不同,但是对于给定的框架(PrestaShop来说准确),显然不是理由.

你使用的是哪个版本?是and不是更具有可读性&&?或者没有区别?

php coding-style operators

285
推荐指数
5
解决办法
18万
查看次数

使用文件句柄获取文件名(或删除文件)

是否有可能从文件句柄获取文件名?或者我如何删除只有句柄的文件?

php file

65
推荐指数
2
解决办法
3万
查看次数

在DOM属性更改上触发事件

是否有任何方法可以触发属性更改事件(可能是自定义)?

让我们说,当IMG src被改变或DIV的innerHtml?

javascript jquery events dom dom-events

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

在Python 3中将异常转换为字符串

有没有人有一个想法,为什么这个Python 3.2代码

try:    
    raise Exception('X')
except Exception as e:
    print("Error {0}".format(str(e)))
Run Code Online (Sandbox Code Playgroud)

工作没有问题(除了Windows shell中的unicode编码:/),但这

try:    
    raise Exception('X')
except Exception as e:
    print("Error {0}".format(str(e, encoding = 'utf-8')))
Run Code Online (Sandbox Code Playgroud)

抛出TypeError:强制转换为str:需要字节,字节数组或缓冲区对象,发现异常

如何使用自定义编码将错误转换为字符串?

编辑

如果消息中有\ u2019,它也不起作用:

try:    
    raise Exception(msg)
except Exception as e:
    b = bytes(str(e), encoding = 'utf-8')
    print("Error {0}".format(str(b, encoding = 'utf-8')))
Run Code Online (Sandbox Code Playgroud)

但是为什么str()不能在内部将异常转换为字节?

python unicode exception character-encoding

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

再次进行python循环导入(也就是这个设计有什么问题)

让我们考虑python(3.x)脚本:

main.py:

from test.team import team
from test.user import user

if __name__ == '__main__':
    u = user()
    t = team()
    u.setTeam(t)
    t.setLeader(u)
Run Code Online (Sandbox Code Playgroud)

测试/ user.py:

from test.team import team

class user:
    def setTeam(self, t):
        if issubclass(t, team.__class__):
            self.team = t
Run Code Online (Sandbox Code Playgroud)

测试/ team.py:

from test.user import user

class team:
    def setLeader(self, u):
        if issubclass(u, user.__class__):
            self.leader = u
Run Code Online (Sandbox Code Playgroud)

现在,当然,我已经获得了循环导入和出色的ImportError.

所以,不是pythonista,我有三个问题.首先:

一世.我怎么能让这个东西工作?

并且,知道某人将不可避免地说"循环导入总是表明设计问题",第二个问题来自:

II.为什么这个设计不好?

最后,第三个:

III.什么是更好的选择?

确切地说,上面的类型检查只是一个例子,还有一个基于类的索引层,它允许ie.发现所有用户都是一个团队的成员(用户类有许多子类,因此索引加倍,对于一般用户和每个特定子类)或所有团队都将用户作为成员

编辑:

我希望更详细的例子能够澄清我试图实现的目标.为了可读性省略了文件(但是有一个300kb的源文件让我感到害怕,所以请假设每个类都在不同的文件中)

# ENTITY

class Entity:
    _id    = None
    _defs  = {}
    _data  = None

    def …
Run Code Online (Sandbox Code Playgroud)

python dependencies class-design python-import

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

调试长时间运行的PHP脚本

我有一个PHP脚本作为一个cron作业运行,广泛使用第三方代码.脚本本身有几千个LOC.基本上它是数据导入/处理脚本.(JSON到MySQL,但它也会产生大量的HTTP调用和一些SOAP).

现在,性能随着时间的推移而降级.使用少量记录(大约100)进行测试时,性能良好,可在10-20分钟内完成.当运行整个导入(大约1600条记录)时,一条记录的平均导入时间稳步增长,整个过程需要超过24小时,因此至少比预期长5倍.

内存似乎不是问题,使用量增长应该没有意外的峰值.

所以,我需要调试它以找到瓶颈.它可能是脚本,底层代码库,php本身,数据库,操作系统或网络部分的一些问题.我现在怀疑某种缓存在某个地方,这种缓存在接近100%的错失率方面表现不佳.

我不能使用XDebug,配置文件增长得太快而无法治疗.

所以问题是:如何调试这种脚本?

PHP版本:5.4.41操作系统:Debian 7.8如有必要,我可以拥有root权限,并安装工具.但它是生产服务器,理想情况下调试不应该太扰乱.

php linux debugging

14
推荐指数
5
解决办法
2359
查看次数

合并两个git存储库以获取线性历史记录

我有两个git存储库,它们之间有很多未跟踪的更改:

   ftp -->            C-- (untracked changes) --D
                     /                           \
   git        A--B--C <-- old/master              \
                                                   \
                                                    \
                                  new/master -->     D--E--F 
Run Code Online (Sandbox Code Playgroud)

如何将旧存储库合并到新存储库中以获得线性历史记录

A--B--C--D--E--F
Run Code Online (Sandbox Code Playgroud)

编辑:

灵感来自如何将Git存储库组合成线性历史记录?

我弄完了:

git clone url://new new
cd new/
git remote add old url://old
git fetch old
git reset --hard origin/master
git filter-branch --parent-filter 'sed "s_^\$_-p old/master_"' HEAD
git push origin master
Run Code Online (Sandbox Code Playgroud)

唯一的问题是每个来自new/master的提交都加倍了(由于我认为父改变)所以我现在(M是合并提交)

         D---E---F--         
                    \
A--B--C--D'--E'--F'--M 
Run Code Online (Sandbox Code Playgroud)

如何轻松删除不必要的提交(D-F和M)?

git merge

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

检查BalloonTooltip是否被用户关闭

如何检查附加到NotifyIcon的BalloonTip是否被用户点击"关闭"图标关闭或者在超时后消失了?似乎在两种情况下都会触发BalloonTipClosed,并且当用户在出现工具提示时点击任意位置时会触发BaloonTipClicked ...

.net c# wpf events tooltip

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

保护私人/受保护方法的输入?

通常,所有理智的开发人员都在努力确保所有公共方法的输入(转换为适当的类型,验证,消毒等)

我的问题是:您是否在代码中验证了传递给protected/private方法的参数?在我看来,没有必要,如果你正确安装公共方法的参数并从外部返回值(其他类,数据库,用户输入等...).

但我经常面对框架和应用程序(即prestashop命名一个),其中验证通常在方法调用中重复,在方法体中再次用于securize返回值 - 我认为,这是创建性能开销,也是一个标志糟糕的设计.

php security frameworks

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

在平衡重量的块中拆分列表

我需要一个算法将一个值列表拆分成这样的块,每个块中的值总和是(近似)等于(它假设背包问题的一些变化)

所以,例如[1,2,1,4,10,3,8] => [[8,2],[10],[1,3,1,4]]

相同长度的块是首选,但它不是约束.

Python是首选语言,但也欢迎其他语言

编辑:定义了块数

python language-agnostic algorithm optimization combinatorics

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