[英]python:class member variable null or undefined
我是 python 的新手,並創建了一個 class 變量,但在我的處理方法中想要檢查是否設置了少量成員變量。 就像 java 腳本未定義或者我可以設置 null 一樣。 我不想使用任何默認值:我如何檢查 null 或未定義?
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.
你可以使用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")
您可以使用檢查是否正在設置變量
def process(self):
print('Name:',name)
if self.state is not None :
print('State:': self.state)
is None 是python檢查是否設置了某些東西的方式
謝謝它有效,但需要更多步驟。 我在構造函數中設置 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.