SORU
7 Mayıs 2009, PERŞEMBE


Nasıl eğer bir python değişken bir dize ise söyle, yoksa bir listesini alabilir miyim?

Parametre olarak dizeleri listesini alır bir rutin var, ama tek bir dize içinde geçen bir dize listesi dönüştürerek destek istiyorum. Örneğin:

def func( files ):
    for f in files:
        doSomethingWithFile( f )

func( ['file1','file2','file3'] )

func( 'file1' ) # should be treated like ['file1']

Nasıl benim işlevi, bir dize veya bir liste geçirilen olup olmadığını söyleyebilir mi? type bir işlevi, ama "daha pythonic" yol? var olduğunu biliyorum

CEVAP
7 Mayıs 2009, PERŞEMBE


Şahsen bu tür davranışlar ördek yazarak uğratır -- sevmiyorum. Bir "Açık örtülü daha iyi" mantra. itaat etmez oynayabiliyor Neden varargs sözdizimini kullanın:

def func( *files ):
    for f in files:
        doSomethingWithFile( f )

func( 'file1', 'file2', 'file3' )
func( 'file1' )
func( *listOfFiles )

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joanna Okrajni

    Joanna Okraj

    4 EYLÜL 2010
  • metagamers

    metagamers

    13 Mayıs 2006
  • ŠĩŗĜŕôŵåɭȍҭҭ

    ŠĩŗĜŕô

    29 Kasım 2009