通过 Python 中的 class 方法访问局部变量
Access a local variable via class method in Python
我是 Python 中 classes 的新手,所以请帮助我。
我正在使用 fpdf 包生成 pdf 格式的报告。
我正在使用以下示例代码生成带页脚的 PDF 页面。
https://pyfpdf.readthedocs.io/en/latest/Tutorial/index.html#header-footer-page-break-and-image
from fpdf import FPDF
class PDF(FPDF):
def header(self):
# Logo
self.image('logo_pb.png', 10, 8, 33)
# Arial bold 15
self.set_font('Arial', 'B', 15)
# Move to the right
self.cell(80)
# Title
self.cell(30, 10, 'Title', 1, 0, 'C')
# Line break
self.ln(20)
# Page footer
def footer(self):
# Position at 1.5 cm from bottom
self.set_y(-15)
# Arial italic 8
self.set_font('Arial', 'I', 8)
# Page number
self.cell(0, 10, 'Page ' + str(self.page_no()) + '/{nb}', 0, 0, 'C')
# Instantiation of inherited class
pdf = PDF()
pdf.alias_nb_pages()
pdf.add_page()
pdf.set_font('Times', '', 12)
for i in range(1, 5):
pdf.cell(0, 10, 'Printing line number ' + str(i), 0, 1)
pdf.output('tuto2.pdf', 'F')
这将生成 5 个页面。我想在页脚中添加一个列表元素。
list=['A','B','C','D','E']
for i in range(1, 5):
pdf.cell(0, 10, 'Printing line number ' + str(i)+list[i], 0, 1)
pdf.output('tuto2.pdf', 'F')
如何将此列表传递给 Class?
此列表是在从上面的 Class 派生的 class 中生成的。
我没有找到要测试的包,但我添加了一个 init 来生成一个字母列表,这样你就可以在基于
生成页脚时添加它
"""
"""
from fpdf import FPDF
import string
class PDF(FPDF):
def ___init___(self):
letters = string.ascii_lowercase
alphabet = d = dict(zip(range(1,27), letters))
def header(self):
# Logo
self.image('logo_pb.png', 10, 8, 33)
# Arial bold 15
self.set_font('Arial', 'B', 15)
# Move to the right
self.cell(80)
# Title
self.cell(30, 10, 'Title', 1, 0, 'C')
# Line break
self.ln(20)
# Page footer
def footer(self):
# Position at 1.5 cm from bottom
self.set_y(-15)
# Arial italic 8
self.set_font('Arial', 'I', 8)
# Page number
self.cell(0, 10, 'Page ' + str(self.page_no()) + str(self.alphabet.get(self.page_no()) + '/{nb}', 0, 0, 'C')
if __name__ == '__main__':
# Instantiation of inherited class
pdf = PDF()
pdf.alias_nb_pages()
pdf.add_page()
pdf.set_font('Times', '', 12)
for i in range(1, 5):
pdf.cell(0, 10, 'Printing line number ' + str(i), 0, 1)
pdf.output('tuto2.pdf', 'F')
幸运的是,想通了!
class PDF1(FPDF,HTMLMixin):
def __init__(self, list):
super(PDF1, self).__init__()
self.proper_name = list
我是 Python 中 classes 的新手,所以请帮助我。 我正在使用 fpdf 包生成 pdf 格式的报告。
我正在使用以下示例代码生成带页脚的 PDF 页面。
https://pyfpdf.readthedocs.io/en/latest/Tutorial/index.html#header-footer-page-break-and-image
from fpdf import FPDF
class PDF(FPDF):
def header(self):
# Logo
self.image('logo_pb.png', 10, 8, 33)
# Arial bold 15
self.set_font('Arial', 'B', 15)
# Move to the right
self.cell(80)
# Title
self.cell(30, 10, 'Title', 1, 0, 'C')
# Line break
self.ln(20)
# Page footer
def footer(self):
# Position at 1.5 cm from bottom
self.set_y(-15)
# Arial italic 8
self.set_font('Arial', 'I', 8)
# Page number
self.cell(0, 10, 'Page ' + str(self.page_no()) + '/{nb}', 0, 0, 'C')
# Instantiation of inherited class
pdf = PDF()
pdf.alias_nb_pages()
pdf.add_page()
pdf.set_font('Times', '', 12)
for i in range(1, 5):
pdf.cell(0, 10, 'Printing line number ' + str(i), 0, 1)
pdf.output('tuto2.pdf', 'F')
这将生成 5 个页面。我想在页脚中添加一个列表元素。
list=['A','B','C','D','E']
for i in range(1, 5):
pdf.cell(0, 10, 'Printing line number ' + str(i)+list[i], 0, 1)
pdf.output('tuto2.pdf', 'F')
如何将此列表传递给 Class? 此列表是在从上面的 Class 派生的 class 中生成的。
我没有找到要测试的包,但我添加了一个 init 来生成一个字母列表,这样你就可以在基于
生成页脚时添加它"""
"""
from fpdf import FPDF
import string
class PDF(FPDF):
def ___init___(self):
letters = string.ascii_lowercase
alphabet = d = dict(zip(range(1,27), letters))
def header(self):
# Logo
self.image('logo_pb.png', 10, 8, 33)
# Arial bold 15
self.set_font('Arial', 'B', 15)
# Move to the right
self.cell(80)
# Title
self.cell(30, 10, 'Title', 1, 0, 'C')
# Line break
self.ln(20)
# Page footer
def footer(self):
# Position at 1.5 cm from bottom
self.set_y(-15)
# Arial italic 8
self.set_font('Arial', 'I', 8)
# Page number
self.cell(0, 10, 'Page ' + str(self.page_no()) + str(self.alphabet.get(self.page_no()) + '/{nb}', 0, 0, 'C')
if __name__ == '__main__':
# Instantiation of inherited class
pdf = PDF()
pdf.alias_nb_pages()
pdf.add_page()
pdf.set_font('Times', '', 12)
for i in range(1, 5):
pdf.cell(0, 10, 'Printing line number ' + str(i), 0, 1)
pdf.output('tuto2.pdf', 'F')
幸运的是,想通了!
class PDF1(FPDF,HTMLMixin):
def __init__(self, list):
super(PDF1, self).__init__()
self.proper_name = list