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

  • ChrisCrossMedia

    ChrisCrossMe

    17 EYLÜL 2009
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • rtisticsdev

    rtisticsdev

    31 Mayıs 2012