Python Forum
What would be a way to check if a variable or class existed in an if?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
What would be a way to check if a variable or class existed in an if?
#1
Something like:
if !x:
    print("Hey!")
or
class x:
    name = 'x'

if !name:
   print("Hi!")
for an alternative for detecting a class.
Reply
#2
You could try and catch NameError.  You shouldn't as this is almost definitely the wrong way to do whatever it is you are trying to do; but you could.
Reply
#3
Here you go. The try/catch option is presented as Mekire suggested as is an alternative:
https://stackoverflow.com/questions/8432...ble-exists
Reply
#4
Again however, I would like to point out, especially as you are a beginner, that none of these options are probably what you currently need.  If you share your code we could better instruct you how to refactor it.  It is very rare to need to check membership in any of those dicts or catch name errors.  Checking for class attributes is slightly more common, but again doubtful this is what you need.
Reply
#5
im not sure what you are doing...but you can use builtin isinstance to check

>>> class Klass:
...     pass
... 
>>> obj = Klass()
>>> obj2 = 'str'
>>> isinstance(obj, Klass)
True
>>> isinstance(obj2, Klass)
False
>>> isinstance(obj2, str)
True
>>> isinstance(obj, str)
False
Recommended Tutorials:
Reply
#6
How would I check if a variable exists?

User has been warned for this post. Reason: Ignoring answers from people trying to help. Low effort.
Reply
#7
In [1]: my_var = 'I am here!'

In [2]: dir()
Out[2]: 
['In',
 'Out',
 '_',
 '__',
 '___',
 '__builtin__',
 '__builtins__',
 '__doc__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 '_dh',
 '_i',
 '_i1',
 '_i2',
 '_ih',
 '_ii',
 '_iii',
 '_oh',
 'exit',
 'get_ipython',
 'my_var',
 'quit']

In [3]: if 'my_var' in dir():
   ...:     print("aha")
   ...:     
aha
"As they say in Mexico 'dosvidaniya'. That makes two vidaniyas."
https://freedns.afraid.org
Reply
#8
You can do it with inspect:
class MyTestClass:
    def __init__(self):
        self.list1 = [ ]
        self.fptr = self.method_a
        self.mamals = {
            'rat': {'has_tail': True},
            'dog': {'has_tail': True},
            'guppy': {'has_tail': False, 'has_fin': True}
        }
        self.fptr()

    def method_a(self):
        pass

def try_me():
    import inspect
    from pprint import pprint

    mtc = MyTestClass()

    # Get everything
    for name, member in inspect.getmembers(mtc):
        if name.startswith('__'):
            continue
        pprint(f'name: {name}, member: {member}')

if __name__ == "__main__":
    try_me()
output:
Output:
('name: fptr, member: <bound method MyTestClass.method_a of '  '<__main__.MyTestClass object at 0x00000000028CBE10>>') 'name: list1, member: []' ("name: mamals, member: {'rat': {'has_tail': True}, 'dog': {'has_tail': True}, "  "'guppy': {'has_tail': False, 'has_fin': True}}") ('name: method_a, member: <bound method MyTestClass.method_a of '  '<__main__.MyTestClass object at 0x00000000028CBE10>>')
Reply
#9
(Dec-21-2017, 10:56 PM)Klar Wrote: How would I check if a variable exists?

You should never need to.

PHP has a function called isset(), which you can use to see if a variable exists: http://php.net/manual/en/function.isset.php
Python doesn't have an easy way to do that, because it's not something you should ever need.  If you think you need it, you're probably doing something very wrong.

Please, for the love of *religious figure*, share some code, so that we can help lead you away from this cliff of failure, and onto spiritual enlightenment.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Variable Types in a class nafshar 9 2,450 Oct-07-2022, 07:13 PM
Last Post: deanhystad
  can Inner Class reference the Outer Class's static variable? raykuan 6 5,884 Jul-01-2022, 06:34 AM
Last Post: SharonDutton
  Calling a base class variable from an inherited class CompleteNewb 3 1,676 Jan-20-2022, 04:50 AM
Last Post: CompleteNewb
  Can we access instance variable of parent class in child class using inheritance akdube 3 13,976 Nov-13-2020, 03:43 AM
Last Post: SalsaBeanDip
  Class variable / instance variable ifigazsi 9 4,301 Jul-28-2020, 11:40 AM
Last Post: buran
  Assignment of non-existing class variable is accepted - Why? DrZ 6 4,264 Jul-13-2020, 03:53 PM
Last Post: deanhystad
  Limiting valid values for a variable in a class WJSwan 5 3,601 Jul-06-2020, 07:17 AM
Last Post: Gribouillis
  check pandas variable type cools0607 3 6,646 Jun-12-2020, 09:28 AM
Last Post: buran
  Newbie: Help with variable selection in a class Slack86 5 2,731 Apr-07-2020, 08:41 PM
Last Post: jefsummers
  Using variable from a class in another .py script keegan_010 4 2,981 Mar-25-2020, 07:47 AM
Last Post: keegan_010

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020