使用WinXP我意外地输入git commit -a
而不是git commit -am "My commit message"
,现在我正在查看我的CMD提示符,其中填写了我的提交消息的文件版本("请输入您的提交消息...").我已将消息添加到顶部,但现在我无法弄清楚如何保存和离开.我试着按CTRL+ W+ Q,但它没有做什么,只是添加^
光标所在的位置.
我esc先尝试过,然后是CTRL+ W+ Q,但它说No write since last change (add ! to override)
.
我想要显示:
49
如 49.00
和:
54.9
如 54.90
无论小数的长度或是否有任何小数位,我想显示Decimal
2位小数,我想以有效的方式做到这一点.目的是显示货币价值.
例如, 4898489.00
以下代码给出了错误UnboundLocalError: local variable 'Var1' referenced before assignment
:
Var1 = 1
Var2 = 0
def function():
if Var2 == 0 and Var1 > 0:
print("Result One")
elif Var2 == 1 and Var1 > 0:
print("Result Two")
elif Var1 < 1:
print("Result Three")
Var1 =- 1
function()
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?谢谢你的帮助!
什么是点'/segment/segment/'.split('/')
回来['', 'segment', 'segment', '']
?
注意空元素.如果你正在拆分碰巧位于第一个位置和一个字符串末尾的分隔符,它会给你从每一端返回空字符串的额外值是多少?
我想跑:
python somescript.py somecommand
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,我需要PYTHONPATH
包含一个特定的目录.我不能只将它添加到我的环境变量中,因为我想要添加的目录会根据我正在运行的项目而更改.有没有办法PYTHONPATH
在运行脚本时改变?注意:我甚至没有PYTHONPATH
变量,因此在运行此脚本期间,我不需要担心附加到它而是覆盖它.
我这样做是为了测试randint的随机性:
>>> from random import randint
>>>
>>> uniques = []
>>> for i in range(4500): # You can see I was optimistic.
... x = randint(500, 5000)
... if x in uniques:
... raise Exception('We duped %d at iteration number %d' % (x, i))
... uniques.append(x)
...
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
Exception: We duped 887 at iteration number 7
Run Code Online (Sandbox Code Playgroud)
我尝试了大约10倍以上,我得到的最好结果是在转发器之前迭代了121次.这是您从标准库中获得的最佳结果吗?
我在这里遇到了范式问题.我不知道是否应该将钱存储为Decimal(),或者我是否应该将其存储为字符串并将其自身转换为小数.我的理由是这样的:
PayPal需要2个小数位,所以如果我有一个49美元的产品,PayPal希望看到49.00遇到问题.Django的DecimalField()不设置小数.它只存储最大小数位数.所以,如果你有49个,并且你将字段设置为2个小数位,它仍然将它存储为49.我知道Django基本上是类型转换,当它从数据库反序列化为Decimal时(因为数据库)没有十进制字段),所以我并不完全关心速度问题,就像我遇到这个问题的设计问题一样.我想做可扩展性最好的事情.
或者,更好的是,是否有人知道如何配置django DecimalField()以始终使用TWO_PLACES格式样式进行格式化.
from functools import wraps
def foo_register(method_name=None):
"""Does stuff."""
def decorator(method):
if method_name is None:
method.gw_method = method.__name__
else:
method.gw_method = method_name
@wraps(method)
def wrapper(*args, **kwargs):
method(*args, **kwargs)
return wrapper
return decorator
Run Code Online (Sandbox Code Playgroud)
例如:下面的装饰my_function
用foo_register
的,而不是它曾经做对decorator
.
@foo_register
def my_function():
print('hi...')
Run Code Online (Sandbox Code Playgroud)
示例:以下按预期工作.
@foo_register('say_hi')
def my_function():
print('hi...')
Run Code Online (Sandbox Code Playgroud)
如果我希望它在两个应用程序中正常工作(一个使用method.__name__
和一个传递名称),我必须检查内部foo_register
是否第一个参数是装饰器,如果是,我必须:( return decorator(method_name)
而不是return decorator
).这种"检查它是否可以调用"似乎非常hackish.有没有更好的方法来创建这样的多用途装饰器?
PS我已经知道我可以要求装饰器被调用,但这不是一个"解决方案".我希望API感觉自然.我的妻子喜欢装饰,我不想破坏它.
我在Windows XP上使用VirtualEnv.我想知道我的大脑是否正确缠绕它.
我跑了virtualenv ENV
,它创造了C:\WINDOWS\system32\ENV
.然后我将PATH
变量改为include C:\WINDOWS\system32\ENV\Scripts
而不是C:\Python27\Scripts
.然后,我检查了Django C:\WINDOWS\system32\ENV\Lib\site-packages\django-trunk
,更新了我的PYTHON_PATH
变量以指向新的Django目录,并继续easy_install
其他事情(当然进入我的新C:\WINDOWS\system32\ENV\Lib\site-packages
目录).
我明白我为什么要使用VIRTUALENV这样我就可以在同一台机器上运行的Django的多个版本,及其他图书馆,但这并不意味着对我有根本上改变我的环境之间进行切换PATH
和PYTHON_PATH
变量?那么,我从开发一个Django项目开始,该项目在一个被调用的环境中使用Django 1.2 ENV
,然后改变我的PATH
等等,以便我可以使用一个名为ENV2
Django开发版本的环境?
这基本上是它,还是有一些更好的方法来自动完成所有这些(我可以在Python代码中更新我的路径,但这需要我在我的应用程序中编写机器特定的代码)?
此外,这个过程与在Linux上使用VirtualEnv相比如何(我是Linux的初学者).
python ×9
coding-style ×1
currency ×1
decimal ×1
decorator ×1
django ×1
function ×1
git ×1
git-commit ×1
linux ×1
python-3.x ×1
pythonpath ×1
random ×1
split ×1
string ×1
vim ×1
virtualenv ×1
windows ×1
windows-xp ×1
wrapper ×1