追加のユーザーオブジェクトを作成し、必要に応じて適切なオブジェクトまたは関数に渡すことをお勧めします。あなたはあまりにも漠然としているので、より現実的なアドバイスをするのは難しいです。
例:
class User:
def __init__(self, name, uid=None, remote=None, dir=None):
self.name = name
self.uid = uid
self.remote = remote
self.directory = dir
def get_X(self)
...
def create_some_curios_String(self):
""" for uid = 'joe', remote='localhost' and directory = '/mnt/srv'
this method would return the string:
'[email protected]://mnt/srv'
"""
return '%[email protected]%s:/%s' % (self.uid, self.remote, self.directory)
class AnotherClass:
def __init__(self, user_obj):
self.user = user_obj
class YetAnotherClass:
def getServiceOrFunctionalityForUser(self, user):
doWhatEverNeedsToBeDoneWithUser(user)
doWhatEverNeedsToBeDoneWithUserUIDandRemote(user.uid, user.remote)
joe = User('Joe Smith', 'joe', 'localhost', '/mnt/srv')
srv_service = ServerService(joe.create_some_curios_String())
srv_service.do_something_super_important()
これを行うには良い方法はほとんど常にあります。 Pythonは文字列名を使用して変数にアクセスすることを許可していますが、実際にはクルージングであり、実際にはプログラム全体を減速させることができます(Pythonがこれを検出したとき、行う)。 –