鱼C论坛

 找回密码
 立即注册
查看: 1835|回复: 1

[已解决]怎么把语句改成自适应版本的句子?

[复制链接]
发表于 2023-5-5 08:27:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)      #  preRotate 对应  PyMuPDF==1.18.17
mat = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)       #  prerotate 对应  PyMuPDF==1.22


能不能一个句子兼容2种 PyMuPDF 版本呢?

mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)  or fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)    能行吗?
最佳答案
2023-5-5 11:36:11
为了让代码兼容两种 PyMuPDF 版本,您可以通过检查  fitz.Matrix  对象是否具有  preRotate  或  prerotate  属性,然后相应地调用这些方法。您可以使用如下代码:
import fitz

# ... 其他代码 ...

zoom_x, zoom_y, rotate = 2.0, 2.0, 90  # 示例值,根据您的需求设置
mat = fitz.Matrix(zoom_x, zoom_y)

if hasattr(mat, "preRotate"):
    mat = mat.preRotate(rotate)  # 对应 PyMuPDF==1.18.17
elif hasattr(mat, "prerotate"):
    mat = mat.prerotate(rotate)  # 对应 PyMuPDF==1.22
else:
    raise AttributeError("Neither 'preRotate' nor 'prerotate' method is found in fitz.Matrix.")

这样,您的代码将可以在两个版本的 PyMuPDF 中运行,而无需将两种方法组合成一行。 hasattr  函数将检查对象是否具有给定的属性,从而使代码兼容两种方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-5 11:36:11 | 显示全部楼层    本楼为最佳答案   
为了让代码兼容两种 PyMuPDF 版本,您可以通过检查  fitz.Matrix  对象是否具有  preRotate  或  prerotate  属性,然后相应地调用这些方法。您可以使用如下代码:
import fitz

# ... 其他代码 ...

zoom_x, zoom_y, rotate = 2.0, 2.0, 90  # 示例值,根据您的需求设置
mat = fitz.Matrix(zoom_x, zoom_y)

if hasattr(mat, "preRotate"):
    mat = mat.preRotate(rotate)  # 对应 PyMuPDF==1.18.17
elif hasattr(mat, "prerotate"):
    mat = mat.prerotate(rotate)  # 对应 PyMuPDF==1.22
else:
    raise AttributeError("Neither 'preRotate' nor 'prerotate' method is found in fitz.Matrix.")

这样,您的代码将可以在两个版本的 PyMuPDF 中运行,而无需将两种方法组合成一行。 hasattr  函数将检查对象是否具有给定的属性,从而使代码兼容两种方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 09:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表