2016-12-12 7 views
0

同じクラスを使用してユーザー入力を設定して返す方法を探しています。単一のクラスを使用して値を設定し返す

login(user= 'abc', passwd = 'xyz') # set the username and password 
x, y = login() # return the current username and password 

これは同じクラスを使用して可能ですか、それとも2つの異なるクラスでのみ可能ですか?

これは私がしようとしたものです:

class login: 
    def __init__(self, user=None, passwd=None): 
     self.username = user 
     self.password = passwd 
     self.myval= self.username + ' ' + self.password 

    def xlim(self, *args, **kwargs): 
     if not args and not kwargs: 
      return self.get_xlim() 
     ret = self.set_xlim(self, *args, **kwargs) 
     return ret 

    def get_xlim(self): 
     return self.myval 

    def set_xlim(self, *args, **kwargs): 
     #self.username = self.kwargs['user'] 
     return self.username 

私もreprを試してみましたが、それは、私はタプルを必要としながら、文字列を返すの主張には思えます。

+0

コンストラクタ( '__init__')がインスタンス以外のものを返すようにしたいのはなぜですか? –

+0

@LutzHorn '__init__'は何も返しません。 – DeepSpace

+0

@DeepSpace True。私は言い換えると、OPはなぜインスタンスメソッドとしてコンストラクタを使用したいのですか? –

答えて

2

A.クラスは不要です。

B.あなたが本当にクラスをしたい場合:

class Login: 
    def __init__(self, user, password): 
     self.user = user 
     self.password = password 

    def as_tuple(self): 
     return self.user, self.password 

login_details = Login(user='a', password='b') 
print(login_details.as_tuple()) 
>> ('a', 'b') 

EDIT 2

(注)こののみで動作します:

class Login: 
    def __init__(self, user, password): 
     self.user = user 
     self.password = password 


login_details = Login(user='a', password='b') 

print(login_details.user) 
>> 'a' 
print(login_details.password) 
>> 'b' 

EDIT OPは、彼らがタプルが欲しい言及インスタンス属性ではありません。複数のインスタンスがあり、ユーザーとパスワードを変更すると、この変更は他のインスタンスにも反映されます。

+0

同じメソッドは、ユーザー入力を「設定」し、「返す」必要があります。これは私が探しているものではありません。 – shantanuo

+0

@shantanuoあなたが設定しようとしているかどうか、その魔法の方法はどうでしょうか? – DeepSpace

+0

ユーザ名とパスワードが提供されている場合は、すでに設定されているものを返すように設定します。 – shantanuo

関連する問題