ID를 가져 와서 current_account 변수를 업데이트하려고하는 클래스가 있는데, current_account의 세부 정보를 인쇄 할 때 업데이트되지 않았습니다.Python 클래스 변수가 업데이트되지 않습니다.
누구든지이 아이디어가 있습니까? 새로운 python 그래서 내가 볼 수없는 바보 같은 일을하고있을 수도 있습니다.
class UserData:
def __init__(self, db_conn=None):
if None == db_conn:
raise Exception("DB Connection Required.")
self.db = db_conn
self.set_my_account()
self.set_accounts()
self.set_current_account()
def set_current_account(self, account_id=None):
print account_id
if None == account_id:
self.current_account = self.my_account
else:
if len(self.accounts) > 0:
for account in self.accounts:
if account['_id'] == account_id:
self.current_account = account
print self.current_account['_id']
else:
raise Exception("No accounts available.")
는
set_my_account()
계정 데이터의 사전을 가져옵니다한다고 가정하고
set_accounts()
는 계정 데이터 사전의 목록을 얻을.
그래서 나는 다음 작업을 수행 할 때 : db_conn
가 유효한 데이터베이스 연결과 account_id
가 유효한 계정 ID입니다
user_data = UserData(db_conn=db_conn)
user_data.set_current_account(account_id=account_id)
.
위의 두 줄 중에서 다음과 같은 내용을 얻을 수 있습니다.
None
518a310356c02c0756764b4e
512754cfc1f3d16c25c350b7
는 그래서
None
값은 클래스의 선언에서이며, 그 다음 두
set_current_account()
에 대한 호출에서입니다. 처음으로
id
값을 설정하려고합니다. 두 번째
id
값은 이미
__init__()
클래스에서 설정 한 값입니다.
'None == account_id'는 거의 관용적이지 않은 파이썬입니다. 'None'은 싱글 톤 객체이고, if account_id가 None :을 사용하여 테스트합니다. –
기록상, 당신의 질문은 클래스 변수가 아닌 ** 인스턴스 변수 **에 관한 것이고, 자신 만의 클래스를 정의 할 때'object'로부터 상속 받아야합니다 :'class UserData (object) :' –
Thanks 정보에 대해 제안 된대로 클래스를 업데이트합니다. – Nalum