osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Spread a statement over various lines


On Wed, 18 Sep 2019 08:30:08 +0200
Peter Otten <__peter__ at web.de> wrote:

> Manfred Lotz wrote:
> 
> > I have a function like follows
> > 
> > def regex_from_filepat(fpat):
> >     rfpat = fpat.replace('.', '\\.') \
> >                       .replace('%', '.')  \
> >                       .replace('*', '.*')
> > 
> >     return '^' + rfpat + '$'
> > 
> > 
> > As I don't want to have the replace() functions in one line my
> > question is if it is ok to spread the statement over various lines
> > as shown above, or if there is a better way?  
> 
> Sometimes you can avoid method-chaining:
> 
> >>> REP = str.maketrans({".": "\\.", "%": ".", "*": ".*"})
> >>> def regex_from_filepat(fpat):  
> ...     return fpat.translate(REP)
> ... 
> >>> regex_from_filepat("*foo.%")  
> '.*foo\\..'
> 

Very interesting. Thanks for this.

> Generally speaking a long statement may be a hint that there is an 
> alternative spelling.
> 
> 

I'll keep it in my mind.