长话短说:我的情况是我喜欢PHP式的getter,但是在JavaScript中.
我的JavaScript只在Firefox中运行,因此我可以使用Mozilla特定的JS.
我可以找到制作JS getter的唯一方法是需要指定它的名称,但是我想为所有可能的名称定义一个getter .我不确定这是否可行,但我非常想知道.
我正在将旧版 Firefox 扩展移植到 WebExtensions。我想在运行时知道扩展本身的版本号。现在我正在做:
let extensionVersion = (function() {
var xhr = new XMLHttpRequest();
xhr.overrideMimeType('application/json');
xhr.open('GET', browser.extension.getURL('manifest.json'), false);
xhr.send(null);
var manifest = JSON.parse(xhr.responseText);
return manifest.version;
})();
Run Code Online (Sandbox Code Playgroud)
这种依赖于同步 XHR 的肮脏黑客。有没有更好的办法?
假设我有这个准系统结构:
project/
main.py
providers/
__init.py__
acme1.py
acme2.py
acme3.py
acme4.py
acme5.py
acme6.py
Run Code Online (Sandbox Code Playgroud)
假设main.py
包含(部分):
if complexcondition():
print providers.acme5.get()
Run Code Online (Sandbox Code Playgroud)
哪里__init__.py
是空的并且acme*.py
包含(部分):
def get():
value=complexcalculation()
return value
Run Code Online (Sandbox Code Playgroud)
如何更改这些文件?
注意:如果答案是"import acme1","import acme2"等等__init__.py
,有没有办法实现这一点而不用手动列出它们?
我有一个像Django模型:
class Category(models.Model):
status=models.CharField(max_length=16)
machineName=models.CharField(max_length=50)
readableName=models.CharField(max_length=100)
description=models.CharField(max_length=1024)
parents=models.ManyToManyField('self')
Run Code Online (Sandbox Code Playgroud)
每个类别可能存在于许多父母中.有些类别没有父母,他们是"根"类别.在纯SQL中我可以通过以下方式找到它们:
SELECT "readableName"
FROM foo_category AS c
LEFT JOIN foo_category_parents AS cp ON (c.id=cp.from_category_id)
WHERE cp.to_category_id IS NULL;
Run Code Online (Sandbox Code Playgroud)
事实上,这很有效.如何通过Django-y调用找到"没有父母的类别列表"?我试过了:
# Says "Cannot resolve keyword 'is_null' into field."
Category.objects.filter(parents__is_null=True)
# Says "Join on field 'id' not permitted."
Category.objects.filter(parents__pk_null=True)
Run Code Online (Sandbox Code Playgroud)
但如上所述,两者都没有效果.
django ×1
firefox ×1
firefox-addon-webextensions ×1
getter ×1
javascript ×1
many-to-many ×1
module ×1
package ×1
python ×1