簡體   English   中英

如何在python中全局導入?

[英]How do I do global import in python?

當我偶然發現某些東西時,我才剛剛開始使用reportlab。 我從一些基本代碼開始:

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

def generateDoc(docName, title, codefilesFolderPath, docTextFilePath):

    canvas = canvas.Canvas(docName, pagesize=letter) 
    canvas.setLineWidth(.3)
    canvas.setFont('Helvetica', 12)
    canvas.drawString(30,750,'OFFICIAL COMMUNIQUE')
    canvas.save()

generateDoc("temp.pdf","","","")

它給了我以下錯誤:

UnboundLocalError: local variable 'canvas' referenced before assignment

我已經知道,像其他語言一樣,不允許在python中自由允許使用全局變量,並且本帖子要求使用global關鍵字。 但是我無法在上面的代碼中得到應該怎么做。

我曾嘗試在不同的地方放置import ,但無法獲得如何執行此操作的信息。

您的本地變量canvas隱藏了導入的模塊canvas

您可以直接導入Canvas

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen.canvas import Canvas

def generateDoc(docName, title, codefilesFolderPath, docTextFilePath):

    canvas = Canvas(docName, pagesize=letter) 
    canvas.setLineWidth(.3)
    canvas.setFont('Helvetica', 12)
    canvas.drawString(30,750,'OFFICIAL COMMUNIQUE')
    canvas.save()

generateDoc("temp.pdf","","","")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM