我正在使用(除其他事项外)生成我创建的几何图形的svg文件的代码。
给定输入脚本my-geometry.py,代码结构如下:
python pre.py my-geometry
在pre.py中,t被称为另一个模块:
from render import *
[...] some other code
execfile(script, globals()) #script=my-geometry
render.py本身导入另一个模块
from svg_render import *
[...]
svg = SvgEnvironment(x,y,title='a',desc='b')
svg.text(x_mid, y_mid, blk.label, anchor="middle")
[...]
在SvgEnvironment
中定义的类在哪里svg_render
?text
该类的方法定义为:
def text(self, x, y, textString, angle=0.0, fontSize=10,
anchor="start", colour="black",
fontFamily="sanserif")
我的问题是:如何修改/覆盖默认值fontSize
from my-geometry.py
?(我想做的是在不修改源代码的情况下修改写入svg的所有文本的字体大小)
我看了这个问题,但似乎不适合我的情况。
您可以使用猴子补丁或覆盖功能。
猴子补丁
#File: render.py
from svg_render import SvgEnvironment
def modified_text(self, x, y, textString, angle=0.0, fontSize=<change size>,
anchor="start", colour="black",
fontFamily="sanserif")
SvgEnvironment.text = modified_text
这将替换整个函数,并且无论何时使用它都会获得新的默认值。
覆写
#File: render.py
from svg_render import SvgEnvironment
class MySvgEnvironment(SvgEnvironment):
def text(self, x, y, textString, angle=0.0, fontSize=<change size>,
anchor="start", colour="black",
fontFamily="sanserif")
...
...
svg = MySvgEnvironment(x,y,title='a',desc='b')
svg.text(x_mid, y_mid, blk.label, anchor="middle")
...
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句