Проблема с распознаванием атрибутов внутри функции - PullRequest
0 голосов
/ 04 апреля 2020
#!/usr/bin/env python3
#!/config.py
_UNIGENE_DIR = "/data/PROGRAMMING/assignment5"
_UNIGENE_FILE_ENDING = "unigene"

    def get_unigene_directory (self,_UNIGENE_DIR) :
        """Returns the absolute path"""
        self._UNIGENE_DIR = _UNIGENE_DIR
        print(self._UNIGENE_DIR)

   def get_uigene_extension(self,_UNIGENE_FILE_ENDING) :
       """Returns the extension of the file"""
       self._UNIGENE_FILE_ENDING = _UNIGENE_FILE_ENDING
       print(self_UNIGENE_FILE_ENDING)

Итак, когда я запускаю следующую команду в среде python моего bash:

      file = "/".join( (config.get_unigene_directory(), host, gene + "." + 
      config.get_unigene_extension() ) )

, я получаю следующую ошибку:

     TypeError: get_unigene_directory() missing 2 required positional arguments: 'self' and 
     '_UNIGENE_DIR'.May I know whats the reason for this error?

1 Ответ

0 голосов
/ 04 апреля 2020

Я думаю, вы не знаете, как работают функции в Python. Я предлагаю вам взглянуть на этот учебник .

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

Другое дело, вы не можете использовать self вне класса. Это ключевое слово относится к фактическому классу, в котором находится метод.

...