Sujet : Re: Syntaxe pas comprise
De : use.reply.to (at) *nospam* INVALID.ADDRESS (Benoit Izac)
Groupes : fr.comp.lang.pythonDate : 04. Nov 2021, 17:30:55
Autres entêtes
Message-ID : <87o86zhohs.fsf@izac.org>
References : 1
Bonjour,
Le 04/11/2021 à 13:45, ast <
ast@invalid> a écrit dans le message
<
6183d5e8$0$1344$426a74cc@news.free.fr> :
Dans cette fonction:
>
def get4(srcpages):
scale = 0.5
srcpages = PageMerge() + srcpages
x_increment, y_increment = (scale * i for i in srcpages.xobj_box[2:])
for i, page in enumerate(srcpages):
page.scale(scale)
page.x = x_increment if i & 1 else 0
page.y = 0 if i & 2 else y_increment
return srcpages.render()
>
trouvée ici:
>
https://www.blog.pythonlibrary.org/2018/06/06/creating-and-manipulating-pdfs-with-pdfrw/
>
je ne comprends pas cette ligne:
>
x_increment, y_increment = (scale * i for i in srcpages.xobj_box[2:])
>
(scale * i for i in srcpages.xobj_box[2:]) est un générateur, un seul
objet, on ne devrait pas pouvoir le dérouler dans 2 variables.
>
x, y = 1 génère une erreur
x, y = (i for i in range(10)) aussi
Mais c'est normal, dans le premier cas il n'y a pas assez d'objets, dans
le second il y en a trop.
x, y = (i for i in range(2))
x
0
y
1
mais pas:
>
x_increment, y_increment = (scale * i for i in srcpages.xobj_box[2:])
>
pourquoi ?
Parce que « srcpages.xobj_box[2:] » contient pile-poil deux éléments.
-- Benoit Izac