在如Django的框架,我会想象,如果一个页面上的用户的土地(运行被称为"some_page"视图功能),你必须在模块的前8吨的进口不相关的这种看法,你在这些进口上浪费周期.我的问题是:
注意:这可以被认为是过早优化,但我对这个论点不感兴趣.让我们假设,实际理论的缘故,认定这是一起交通负荷已完成的网站,需要在每一个可能的方式进行优化,以及应用程序代码,以及DB已经由50博士的数据库管理员和开发人员经过充分的优化,这些进口是唯一剩下的东西.
为什么None
hash to -1042159082
(我发现它等于Gigabyte中的字节数否定)?
我意识到这并没有真正影响我的代码,但我很好奇.
哈希用于字典键查找,所以我决定尝试:
>>> D = {-1042159082: 'Hello', None: 'Hi'}
>>> D[None]
'Hi'
>>> D[-1042159082]
'Hello'
>>>
Run Code Online (Sandbox Code Playgroud)
我理解这是因为Python看到两个相同的哈希,然后检查类型以查看它是什么.是对的吗?
>>> {False: 'Hello', 0: 'Hi'}
{False: 'Hi'}
>>> {0: 'Hi', False: 'Hello'}
{0: 'Hello'}
Run Code Online (Sandbox Code Playgroud)
这很奇怪.更重要的是保留第一个键,保留第二个键.
这是巫术,还是有人能帮助我理解?
我想得到UTC-11时区(进入新的一年的最后一个时区)目前的年份,但我不知道如何做到这一点.
我可以访问该pytz
库,以及Django的新timezone
模块,我正在使用时区感知的UTC日期时间对象.
我并不是说技术上的区别是什么,而是更快/更符合逻辑或Pythonic等方式:
def __quantized_price(self):
TWOPLACES = Decimal(10) ** -2
return self.price.quantize(TWOPLACES)
Run Code Online (Sandbox Code Playgroud)
要么
def __formatted_price(self):
TWOPLACES = Decimal(10) ** -2
return '{0:.2f}'.format(self.price)
Run Code Online (Sandbox Code Playgroud)
它们似乎完全一样,所以我只是想知道为什么它们会在什么时候创建量化
doctest中的这段代码在单独运行时起作用,但在这个doctest中,它在10个地方失败了.我无法弄清楚它为什么会这样.以下是整个模块:
class requireparams(object):
"""
>>> @requireparams(['name', 'pass', 'code'])
>>> def complex_function(params):
>>> print(params['name'])
>>> print(params['pass'])
>>> print(params['code'])
>>>
>>> params = {
>>> 'name': 'John Doe',
>>> 'pass': 'OpenSesame',
>>> #'code': '1134',
>>> }
>>>
>>> complex_function(params)
Traceback (most recent call last):
...
ValueError: Missing from "params" argument: code
"""
def __init__(self, required):
self.required = set(required)
def __call__(self, params):
def wrapper(params):
missing = self.required.difference(params)
if missing:
raise ValueError('Missing from "params" argument: %s' % ', '.join(sorted(missing)))
return wrapper
if __name__ == …
Run Code Online (Sandbox Code Playgroud) 总结一下,在我进入不好的例子之前,等等:我正在尝试创建一个应用程序,我不必在所有模型中编写代码来限制当前登录帐户的选择(我没有使用身份验证或帐户或登录的内置功能).
也就是说,我不希望有做这样的事情:
class Ticket(models.Model):
account = models.ForeignKey(Account)
client = models.ForeignKey(Client) # A client will be owned by one account.
content = models.CharField(max_length=255)
class TicketForm(forms.ModelForm):
class Meta:
model = Ticket
exclude = ('account',) #First sign of bad design?
def __init__(self, *args, **kwargs):
super(OrderForm, self).__init__(*args, **kwargs)
if self.initial.get('account'):
# Here's where it gets ugly IMHO. This seems almost
# as bad as hard coding data. It's not DRY either.
self.fields['client'].queryset = Client.objects.filter(account=self.initial.get('account'))
Run Code Online (Sandbox Code Playgroud)
我的想法是Account(models.Model)
使用以下自定义管理器创建一个模型,并使用所有模型的多表继承对其进行子类化.它给了我一个巨大的脑痛.我还需要account
每个型号的外键吗?我可以访问某个模型实例的父类帐户吗?
class TicketManager(models.Manager):
def …
Run Code Online (Sandbox Code Playgroud) 我注意到人们提到的" 只需在JS代码的顶部定义一个变量,它就变成了全局 ",以回应诸如" 如何从函数内部创建全局变量? "之类的问题.大多数答案首先说不可能实现这一点.当然可以这样做:
<script type="text/javascript">
window.spam = 'Hello World';
</script>
Run Code Online (Sandbox Code Playgroud)
然后,在您的代码中,您可以说:
<script type="text/javascript">
alert(spam);
</script>
Run Code Online (Sandbox Code Playgroud)
这在IE6 +,Firefox,Chrome,Safari等中运行得非常好.那么为什么没有人这样做呢?
在我来说,我希望人们访问一个名为全局变量fooBar
在他们的代码,并在我的AJAX库的任何地方,我希望变量在幕后自动更新,这样,当他们说$.do_some_magic()
,他们可以肯定的是fooBar
将反映所做的更改$.do_some_magic()
,而不不得不考虑一下.我不希望他们必须在代码中创建高位变量,我也不想在库代码中创建高位变量.我想我只是讨厌在顶部定义全局变量而不愿意,除非有充分的理由不这样做.在那儿?
我从来没有使用过>>
和<<
操作符,不是因为我从来不需要它们,而是因为我不知道我是否可以使用它们,或者我应该使用它们.
100 >> 3
输出12
而不是12.5
.为什么是这样.也许学习哪里最好使用右移会隐含地回答,但我很好奇.
我想知道是否有办法创建您已检出的存储库的差异并将其保存到diff文件,以便您可以将其作为完整补丁贡献给项目.我正在使用Tortoise SVN,但如果它必须在命令行,那也没关系.
我想学习C++,以便我可以为服务器相关的东西开发C++ Python模块.
我是一个纯粹的动态语言开发人员(Python,PHP,Ruby等).我想学习一门快速的语言,如果我要这样做,我宁愿学习像C++这样快速的语言.在我开始之前,我明白突然使用静态类型,不同的语法和编译代码将是相当的范式转换.有没有任何建议,C++开发人员也有动态语言经验可以帮助我帮助我更快地实现这一转变?
python ×6
django ×3
c++ ×1
datetime ×1
diff ×1
docstring ×1
doctest ×1
javascript ×1
operators ×1
optimization ×1
paradigms ×1
quantization ×1
repository ×1
string ×1
svn ×1
timezone ×1
tortoisesvn ×1
utc ×1