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

  • Canal de arkyoru

    Canal de ark

    18 Ocak 2007
  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • Tek Syndicate

    Tek Syndicat

    23 Temmuz 2008