SORU
9 AĞUSTOS 2010, PAZARTESİ


Python: en eğer bir nesne bir sayı olup olmadığını kontrol etmek için bir yol pythonic

Keyfi python bir nesnenin belirli bir sayı olup olmadığını belirlemek için en iyi yolu nedir? Burada is acts like a number in certain circumstances olarak tanımlanır.

Örneğin, bir vektör sınıfı yazdığını söylüyorlar. Eğer başka bir vektör verilirse, nokta ürünü bulmak istiyorum. Eğer bir skaler verilirse, tüm vektör ölçek.

Eğer bir şey 3*, *, long, float6* *eğer kontrol can sıkıcı bir durum ve kullanıcı tanımlı karşılamaz numaraları gibi hareket nesneleri. Ama, __mul__, örneğin, ben sadece açıklanan vektör sınıfı, çünkü yeterince iyi değil kontrol __mul__ ama istediğim sayıda tür olmaz tanımlayın.

CEVAP
9 AĞUSTOS 2010, PAZARTESİ


isinstance(n, Number) (2.6 beri mevcut) testi numbers modülünden Number kullanın.

>>> from numbers import Number
... from decimal import Decimal
... from fractions import Fraction
... for n in [2, 2.0, Decimal('2.0'), complex(2,0), Fraction(2,1), '2']:
...     print 's %s' % (n.__repr__(), isinstance(n, Number))
              2 True
            2.0 True
 Decimal('2.0') True
         (2 0j) True
 Fraction(2, 1) True
            '2' False

Bu, ördek yazarak aksine tabii ki. Bir nesne hakkında daha fazla endişe varsagörürne oldu yerineeğer bir sayı varsa , bu gibi işlemleri gerçekleştirmek ve özel durumlar başka türlü söylemek için kullanın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • Pocketnow

    Pocketnow

    14 EKİM 2007
  • tsweeney79

    tsweeney79

    21 Ocak 2008