我有一个代码库,开发人员决定使用AND
而OR
不是&&
和||
.
我知道运营商的优先级(&&
之前and
)有所不同,但是对于给定的框架(PrestaShop来说准确),显然不是理由.
你使用的是哪个版本?是and
不是更具有可读性&&
?或者没有区别?
是否有任何方法可以触发属性更改事件(可能是自定义)?
让我们说,当IMG src被改变或DIV的innerHtml?
有没有人有一个想法,为什么这个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(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) 我有一个PHP脚本作为一个cron作业运行,广泛使用第三方代码.脚本本身有几千个LOC.基本上它是数据导入/处理脚本.(JSON到MySQL,但它也会产生大量的HTTP调用和一些SOAP).
现在,性能随着时间的推移而降级.使用少量记录(大约100)进行测试时,性能良好,可在10-20分钟内完成.当运行整个导入(大约1600条记录)时,一条记录的平均导入时间稳步增长,整个过程需要超过24小时,因此至少比预期长5倍.
内存似乎不是问题,使用量增长应该没有意外的峰值.
所以,我需要调试它以找到瓶颈.它可能是脚本,底层代码库,php本身,数据库,操作系统或网络部分的一些问题.我现在怀疑某种缓存在某个地方,这种缓存在接近100%的错失率方面表现不佳.
我不能使用XDebug,配置文件增长得太快而无法治疗.
所以问题是:如何调试这种脚本?
PHP版本:5.4.41操作系统:Debian 7.8如有必要,我可以拥有root权限,并安装工具.但它是生产服务器,理想情况下调试不应该太扰乱.
我有两个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 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)?
如何检查附加到NotifyIcon的BalloonTip是否被用户点击"关闭"图标关闭或者在超时后消失了?似乎在两种情况下都会触发BalloonTipClosed,并且当用户在出现工具提示时点击任意位置时会触发BaloonTipClicked ...
通常,所有理智的开发人员都在努力确保所有公共方法的输入(转换为适当的类型,验证,消毒等)
我的问题是:您是否在代码中验证了传递给protected/private方法的参数?在我看来,没有必要,如果你正确安装公共方法的参数并从外部返回值(其他类,数据库,用户输入等...).
但我经常面对框架和应用程序(即prestashop命名一个),其中验证通常在方法调用中重复,在方法体中再次用于securize返回值 - 我认为,这是创建性能开销,也是一个标志糟糕的设计.
我需要一个算法将一个值列表拆分成这样的块,每个块中的值总和是(近似)等于(它假设背包问题的一些变化)
所以,例如[1,2,1,4,10,3,8] => [[8,2],[10],[1,3,1,4]]
相同长度的块是首选,但它不是约束.
Python是首选语言,但也欢迎其他语言
编辑:定义了块数
python language-agnostic algorithm optimization combinatorics
php ×4
python ×3
events ×2
.net ×1
algorithm ×1
c# ×1
class-design ×1
coding-style ×1
debugging ×1
dependencies ×1
dom ×1
dom-events ×1
exception ×1
file ×1
frameworks ×1
git ×1
javascript ×1
jquery ×1
linux ×1
merge ×1
operators ×1
optimization ×1
security ×1
tooltip ×1
unicode ×1
wpf ×1