python:class 成员变量 null 或 undefined
python:class member variable null or undefined
我是 python 的新手,正在创建一个 class,它的变量很少,但在我的处理方法中,我想检查是否设置了几个成员变量。就像 java script undefined 或 if i can set null 一样。我不想使用任何默认值:如何检查 null 或 undefined?
class MyClass:
def __init__(self, name, city):
self.name = name
self.city = city
def setState(self,state)
self.state = state
def process(self):
print("Name:", name)
# here i want check whether state is being set or not.
# How can i do it. I tried if self.state is None but getting
# exception AttributeError.
您可以使用
检查是否正在设置变量
def process(self):
print('Name:',name)
if self.state is not None :
print('State:': self.state)
是None是python检查是否设置了某些东西的方式
您可以使用hasattr
if hasattr(self, 'state'):
...
或自己抓住 AttributeError
(hasattr
所做的一切):
try:
x = self.state
except AttributeError:
print("No state")
else:
print(f"State is {x}")
但是,最好在 __init__
方法中简单地将属性初始化为 None
。
def __init__(self, name, city):
self.name = name
self.city = city
self.state = None
然后您可以根据需要简单地检查 self.state
的值。
if self.state is not None:
...
顺便说一句,除非您想对 state
的值执行某种验证,否则只需让用户直接访问 self.state
而不是使用方法来设置该值。
x = MyClass("bob", "Townsville")
x.state = "Vermont" # rather than x.setState("Vermont")
谢谢,它成功了,但还需要一个步骤。
我在构造函数中设置 state = None 然后
class MyClass:
def __init__(self, name, city):
self.name = name
self.city = city
self.state = None
def process(self):
print('Name:',name)
if self.state is not None :
print('State:': self.state)
我是 python 的新手,正在创建一个 class,它的变量很少,但在我的处理方法中,我想检查是否设置了几个成员变量。就像 java script undefined 或 if i can set null 一样。我不想使用任何默认值:如何检查 null 或 undefined?
class MyClass:
def __init__(self, name, city):
self.name = name
self.city = city
def setState(self,state)
self.state = state
def process(self):
print("Name:", name)
# here i want check whether state is being set or not.
# How can i do it. I tried if self.state is None but getting
# exception AttributeError.
您可以使用
检查是否正在设置变量def process(self):
print('Name:',name)
if self.state is not None :
print('State:': self.state)
是None是python检查是否设置了某些东西的方式
您可以使用hasattr
if hasattr(self, 'state'):
...
或自己抓住 AttributeError
(hasattr
所做的一切):
try:
x = self.state
except AttributeError:
print("No state")
else:
print(f"State is {x}")
但是,最好在 __init__
方法中简单地将属性初始化为 None
。
def __init__(self, name, city):
self.name = name
self.city = city
self.state = None
然后您可以根据需要简单地检查 self.state
的值。
if self.state is not None:
...
顺便说一句,除非您想对 state
的值执行某种验证,否则只需让用户直接访问 self.state
而不是使用方法来设置该值。
x = MyClass("bob", "Townsville")
x.state = "Vermont" # rather than x.setState("Vermont")
谢谢,它成功了,但还需要一个步骤。 我在构造函数中设置 state = None 然后
class MyClass:
def __init__(self, name, city):
self.name = name
self.city = city
self.state = None
def process(self):
print('Name:',name)
if self.state is not None :
print('State:': self.state)