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

  • Hudson Music

    Hudson Music

    13 Mart 2007
  • ibebrent

    ibebrent

    23 Temmuz 2007
  • SalGames2016

    SalGames2016

    17 Kasım 2012