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

  • Diogo Oliveira

    Diogo Olivei

    4 HAZİRAN 2006
  • inovationgmbh

    inovationgmb

    28 EYLÜL 2010
  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014