Skip to content Skip to sidebar Skip to footer

Safe Casting In Python

How to do safe cast in python In c# I can safe cast by keyword as, e.g.: string word='15'; var x=word as int32// here I get 15 string word='fifteen'; var x=word as int32// here I

Solution 1:

Think not, but you may implement your own:

def safe_cast(val, to_type, default=None):
    try:
        return to_type(val)
    except (ValueError, TypeError):
        return default

safe_cast('tst', int) # will return None
safe_cast('tst', int, 0) # will return 0

Solution 2:

I do realize that this is an old post, but this might be helpful to some one.

x = int(word) if word.isdigit() else None

Solution 3:

I believe, you've heard about "pythonic" way to do things. So, safe casting would actually rely on "Ask forgiveness, not permission" rule.

s = 'abc'
try:
    val = float(s) # or int 
    # here goes the code that relies on val
except ValueError:
    # here goes the code that handles failed parsing
    # ...       

Solution 4:

There is something similar:

>>> word="15"
>>> x=int(word)
>>> x
15


>>> word="fifteen"
>>> x=int(word)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'fifteen'


>>> try: 
...     x=int(word)
... except ValueError:
...     x=None
... 
>>> x is None
True

Solution 5:

Casting has sense only for a variable (= chunk of memory whose content can change)

There are no variables whose content can change, in Python. There are only objects, that aren't contained in something: they have per se existence. Then, the type of an object can't change, AFAIK.

Then, casting has no sense in Python. That's my believing and opinion. Correct me if I am wrong, please.

.

As casting has no sense in Python, there is no sense to try to answer to this question.

The question reveals some miscomprehension of the fundamentals of Python and you will gain more profit obtaining answers after having explained what led you thinking that you need to cast something


Post a Comment for "Safe Casting In Python"