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

  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • TheXiaxue

    TheXiaxue

    3 AĞUSTOS 2009
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011