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

  • BigBoyTV

    BigBoyTV

    25 EYLÜL 2013
  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • Incredible Tutorials

    Incredible T

    27 EKİM 2006