我需要知道是否存在python模块,而不导入它.
导入可能不存在的东西(不是我想要的东西):
try:
import eggs
except ImportError:
pass
Run Code Online (Sandbox Code Playgroud) 我试图在python 2.7中动态生成类,我想知道你是否可以轻松地从类对象传递参数到元类.
我读过这篇文章很棒,但并没有完全回答这个问题.目前我正在做的事情:
def class_factory(args, to, meta_class):
Class MyMetaClass(type):
def __new__(cls, class_name, parents, attrs):
attrs['args'] = args
attrs['to'] = to
attrs['eggs'] = meta_class
class MyClass(object):
metaclass = MyMetaClass
...
Run Code Online (Sandbox Code Playgroud)
但这要求我做以下事情
MyClassClass = class_factory('spam', 'and', 'eggs')
my_instance = MyClassClass()
Run Code Online (Sandbox Code Playgroud)
这样做有更干净的方法吗?
我正在编写很多非常相似的任务,并想知道如何更好地子类化Task以减少样板.因为一个任务只是一次实例化,所以你不能__init__像我下面所说的那样把事情放进去,但它应该说明一点.
我想要完成的事情:
class EmailTaskOne(Task):
def run(self, object_id):
email_data = EmailData.objects.get(pk=object_id)
data = self.do_common_stuff(email_data)
self.do_unique_stuff(data)
class EmailTaskTwo(Task):
def run(self, object_id):
email_data = EmailData.objects.get(pk=object_id)
data = self.do_common_stuff(email_data)
self.do_unique_stuff2(data)
# lots more tasks like this
Run Code Online (Sandbox Code Playgroud)
我想拥有的是:
class BaseEmailTask(Task):
abstract = True
#...Insert Magic Here...
class EmailTaskOne(BaseEmailTask):
def run(self, object_id):
self.do_unique_stuff(self.data)
Run Code Online (Sandbox Code Playgroud)
所以,既然__init__是正确的,我在哪里设置抽象类中的类.我可以很容易地定义一堆函数,如果我想做的就是分解一些东西,但是一些(很多)样板取决于object_id.
我正在尝试获取在python中按下的字符的键盘代码。为此,我需要查看是否按了键盘数字。
这不是我要找的东西:
import tty, sys
tty.setcbreak(sys.stdin)
def main():
tty.setcbreak(sys.stdin)
while True:
c = ord(sys.stdin.read(1))
if c == ord('q'):
break
if c:
print c
Run Code Online (Sandbox Code Playgroud)
输出字符的ASCII码。这意味着,我对键盘1的命令与普通键盘1的命令相同。我还尝试了使用curses库和进行类似的设置raw,并获得了相同的结果。
我正在尝试获取原始键盘代码。如何做到这一点?
我正在尝试使用wand将pdf转换为jpegs,但是当我在image.sequence中迭代SingleImages并分别保存每个图像时.我使用Django在AWS上保存每个图像,使用数据库引用.
image_pdf = Image(blob=pdf_blob)
image_jpeg = image_pdf.convert('jpeg')
for img in image_jpeg.sequence:
memory_file = SimpleUploadedFile(
"{}.jpeg".format(img.page_number),
page.container.make_blob())
spam = Spam.objects.create(
page_image=memory_file,
caption="Spam")
Run Code Online (Sandbox Code Playgroud)
这不起作用,page.container正在调用父Image类,并且第一页被反复写入.如何获取第二帧/页面进行保存?
我正在尝试为表单向导视图编写测试django.contrib.formstools.wizard.views.CookieWizardView,我不知道如何在测试用例中编写顺序帖子:
#test_views.py
def test_wizard_pass(self):
response = self.c.post('/wizard/url/',first_form_post_dict)
self.assertContains(...)
response = self.c.post('/wizard/url/',second_step_post_dict)
self.assertRedirect(...)
Run Code Online (Sandbox Code Playgroud)
我假设我需要根据第一个响应中的内容或者与用于会话管理的cookie有关的内容来更改第二个帖子数据,我只是不确定是什么.
django django-forms django-views django-testing django-formwizard
我正在尝试为布局创建一个模板,如下所示:
|----------|
| |
| IMAGE | <--- Just an image (square)
| |
|----------|
|[btn][btn]| <--- GridLayout cols=2 of buttons
|[btn][btn]|
|[btn][btn]|
|[btn][btn]|
|[btn][btn]|
|[btn][btn]|
|----------|
Run Code Online (Sandbox Code Playgroud)
第一部分很容易(但我可能是错的,因为我在kivy很新)
#:kivy 1.6
[SideBar@BoxLayout]:
orientation: 'vertical'
Image:
source: ctx.image
size_hint: (1, None)
height: root.width
GridLayout:
cols: 2
# What do I do here to make it easy to load a list of buttons?
Run Code Online (Sandbox Code Playgroud) python ×6
django ×3
celery ×1
django-forms ×1
django-views ×1
imagemagick ×1
kivy ×1
layout ×1
metaclass ×1
pdf ×1
python-2.x ×1
wand ×1
widget ×1