Python’da Değişken Türü Kontrolü

Projelerinizde bir değişkenin türünü kontrol edip işlemleri ona göre yaptırmak ya da farklı yerlerde değişken türünü öğrenmek isteyebilirsiniz. Bunun için Python'da types modülü işinizi görecektir.

Bu modülü kullanmak için aşağıdaki şekilde kodlarınıza dahil etmemiz yeterli.

 
from types import *
 

36 türü bu modül ile kontrol edebiliyorsunuz. Bunlarla ilgili bazı örnekler aşağıdadır.

NoneType

 
>>> a = None
>>> if type(a) is NoneType:
...     print "a nın değeri None olarak tanımlanmış"
... else:
...     print "a nın değeri None olarak tanımlanmamış"
...
a nın değeri None olarak tanımlanmış
>>>
 

BooleanType

 
>>> a = True
>>> if type(a) is BooleanType:
...     print "a nın değeri True ya da False olarak tanımlanmış"
... else:
...     print "a nın değeri True ya da False olarak tanımlanmamış"
...
a nın değeri True ya da False olarak tanımlanmış
>>>
 

IntType

 
>>> a = 11
>>> if type(a) is IntType:
...     print "a değişkeni sayısal bir veri barındırmaktadır"
... else:
...     print "a değişkeni sayısal bir veri barındırmamaktadır"
...
a değişkeni sayısal bir veri barındırmaktadır
 

Tabi yukarıdaki şekilde kullanmak yerine aşağıdaki iki fonksiyonla işlerinizi kolaylaştırabilirsiniz.

 
#-*- coding: utf-8 *-*
 
from types import *
def kontrol(veri,tur):
    if type(veri) is tur:
        return True
    else:
        return False
 
a = "merhaba"
print kontrol(a,StringType)
print kontrol(a,IntType)
 
import types
def tur_ogren(veri):
    turler = dir(types)[:-4]
    for i in turler:
        if type(veri) is eval(i):
            return i
 
a = "123"
print tur_ogren(a)
a = 123
print tur_ogren(a)
 

Tags:

2 Responses to “Python’da Değişken Türü Kontrolü”

  1. Tutku Dalmaz Says:

    Bu modülü direk olarak bir uygulama içerisinde kullanır mıyım bilemem. Yazdığım bazı uygulamalarda kod satırı arttıkça yaptığım tür atamaları ve bunlara bağlı işlemlerde hata çıktığı oluyor. Bu durumda hata kontrolü ve çözümü için bu modülü kesinlikle kullanırım. Bilgi ve örnekler için teşekkürler.

  2. Ömer Ücel Says:

    Rica ederim, kolay gelsin.

Leave a Reply