A silly question - Printable Version +- Gimp-Forum.net (https://www.gimp-forum.net) +-- Forum: GIMP (https://www.gimp-forum.net/Forum-GIMP) +--- Forum: Extending the GIMP (https://www.gimp-forum.net/Forum-Extending-the-GIMP) +---- Forum: Scripting questions (https://www.gimp-forum.net/Forum-Scripting-questions) +---- Thread: A silly question (/Thread-A-silly-question) |
A silly question - carmen - 10-27-2019 I dare say it's silly enough. I have a piece of code in Gimp that reads: Code: postfix='_xcf.webp' It works to do what I wish, but it looks as ungainly as a five-legged mammoth. Please, is there some more elegant way to achieve the same? I have been reading about 'lambdas', but nothing seemed applicable... And, if my quesion is as foolish as I feel at posting it, please disregard it... RE: A silly question - Ofnuts - 10-27-2019 Can you have GS and crop at the same time and if so are you expecting a -crop-GS_xcf result? Are GS and crop booleans? Lambdas not a solution here. To avoid ifs your best weapon is an array or dictionary of postfixes, keyed by the option. Something I sometimes do with booleans is take advantage of the fact that they are automatically converted to 0 or 1, so you can write things like: Code: value=[valueIfFalse,ValueIfTrue][boolean] Otherwise your code is also a backwards walking mammoth, I would have used: Code: theName=name Or using %-formatting and my boolean-indexed array trick Code: theName='%s%s%s_xcf.webp' % (name, ['','-crop'][crop],['','-GS'][GS]) Other people would build a list of name parts and use Code: theName=''.join(nameParts) RE: A silly question - carmen - 10-27-2019 Thanks! Yes,both are booleans and not exclusive: I can conceivably wish to output a webp (or indexed png) both grayscale (I always work in RGB) and without margins, as those are better added through css in an epub... more control. I dare say I shall try all variants... although it will take me some to get used to 'x+=y' ... as did accepting 'x=x+y' without concluding 'y=0', and remembering moreover that one had lost the initial value of 'x'--live and learn! Cute the variant with list and formatting! RE: A silly question - Ofnuts - 10-27-2019 (10-27-2019, 10:29 PM)carmen Wrote: Thanks! x+=y is fairly frequent. It is actually more readable that x=x+y because you don't have to check that it's the same variable on both sides. Compare: Code: offsetX+=1 with: Code: offsetX=offsetX+1 Did you catch the Y<->Z swap in the last one? Formatting is IMHO the preferred method. |