Как передать переменную в dir () в python - PullRequest
0 голосов
/ 17 июня 2019

Как я могу передать класс как переменную в функцию dir () в python?

Я пытаюсь использовать атрибуты user_defined для того, что входит в функцию dir ()

p = dir(sv.socket0.uncore.kar)

вместо абсолютного пути, показанного выше, я хочу передать переменную, которая будет иметь путь

dir_path = 'sv.socket0.uncore' + '.kar' // kar here is user_defined

p = dir(dir_path)

Проблема здесь в том, что функция рассматривает переменную как строку, а не класс и не возвращает все атрибуты класса.

1 Ответ

0 голосов
/ 17 июня 2019

Возможно передавать классы в качестве аргументов. Если вы сделаете это, вы также можете создать его экземпляр и вызвать dir для нового экземпляра. Другими словами, вместо использования строки с закодированным в ней путем, вы можете передать переменную класса:

class Foo:
    def bar(self):
        return "bar"

def dir_cls(cls):
    return dir(cls())

print(dir_cls(Foo))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...