报表实验室画布对象的正确构造函数方法是什么?



我从reportlab的用户指南中复制粘贴了构造函数方法,但它似乎不正确。

错误:

encrypt = None
^
SyntaxError: invalid syntax

构造方法:

def __init__(self,filename,
pagesize=letter,
bottomup = 1,
pageCompression=0,
encoding=rl_config.defaultEncoding,
verbosity=0
encrypt=None):

完整代码(添加逗号后修复(:

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
class PDF_Hello:
def hello(c):
c.drawString(100, 100, "Hello World")
def __init__(self, filename,
pagesize=letter,
bottomup=1,
pageCompression=0,
encoding=rl_config.defaultEncoding,
verbosity=0,
encrypt = None):
c = canvas.Canvas("hello.pdf")
PDF_object = PDF_Hello("Hello_world.pdf")
PDF_object.hello(c)
c.showPage()
c.save()

更新(在reportlab的用户指南中的印刷错误上添加逗号后(:

我在encoding参数的默认值中遇到了一个NameError: name 'rl_config' is not defined,默认情况下应该可以工作。

函数中的所有参数都必须用逗号(,(分隔。正如评论中已经提到的,在__init__()方法中缺少一个,来分隔参数。

您的__init__()方法应该如下所示:

def __init__(self, filename, pagesize=letter, bottomup=1, pageCompression=0,
encoding=rl_config.defaultEncoding, verbosity=0, encrypt=None):

如您所见:现在,verbosityencrypt之间有一个逗号。

Python文档中的更多内容:

parameter_list::=defparameter(","defparameter(*[","[parameter_listrongtarargs]]| parameter_listrongtarargs

您可以看到,需要",">(逗号(来分隔参数。

最新更新