我从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):
如您所见:现在,verbosity
和encrypt
之间有一个逗号。
Python文档中的更多内容:
parameter_list::=defparameter(","defparameter(*[","[parameter_listrongtarargs]]| parameter_listrongtarargs
您可以看到,需要",">(逗号(来分隔参数。