Ошибка атрибута: объект ‘str’ не имеет атрибута ‘путь’

#python #python-3.x #function #class #methods

Вопрос:

я новичок в python, и у меня есть проблема, которую я не могу понять

 AttributeError: 'str' object has no attribute 'path'
 
 class extractor:
    """This class will find the path for the pdx"""

    def __init__(self, pdx_name,path):
        self.pdx_name = pdx_name
        self.path = path

    def __str__(self):
        return self.pdx_name

    def find_folder(self):
       if os.path.exists(self.path):
           return self.path
 

может быть, кто-то сможет объяснить, что происходит, я думаю, это что-то простое, чего я до сих пор не понял.

Спасибо вам!f

Комментарии:

1. Эти формы функций относятся к классу, а не к отдельному. Это ваша ошибка.

2. Как вы используете свой класс экстрактора? Я думаю, вам нужно добавить фрагмент кода, показывающий, по крайней мере, его использование. Когда возникает ваша ошибка?

Ответ №1:

Как упоминал @dawg, эти методы принадлежат классу:

 import os

class File
    def __init__(self, pdx_name, path):
        self.pdx_name = pdx_name
        self.path = path

    def __str__(self):
        return self.pdx_name

    def find_folder(self):
       if os.path.exists(self.path):
           return self.path


file = File('some_name', '/Users/bob')
print(file.find_folder())
 

Комментарии:

1. Я думаю, что он уже поместил эти методы в extractor класс, но smh не смог поместить их в образец кода

2. @Рустамгараев, ах, ну это всех смутит 🙂

Ответ №2:

в проекте у меня есть основная программа и та, которая содержит класс, и я вызываю класс в основной программе, если это помогает

Это код внутри основного файла python, в котором я вызываю класс

путь импорта как pt

 val = input("Introduceti numele PDX-ului: ")
path='x'
x=pt.extractor(val,path)
print(x)
y = pt.extractor.find_folder(path)
print(y)