Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我不能';我不明白Python上的类结构,我有一个;“属性错误”;_Python_Oop - Fatal编程技术网

我不能';我不明白Python上的类结构,我有一个;“属性错误”;

我不能';我不明白Python上的类结构,我有一个;“属性错误”;,python,oop,Python,Oop,我在textChecker.py中有一个类,我想从另一个.py文件中使用这个类 textChecker.py: class Fixer: def __init__(self,number,word): self.number = number self.word = word def wordFixer(self): text = self.word text = text.lower() retu

我在textChecker.py中有一个类,我想从另一个.py文件中使用这个类

textChecker.py:

class Fixer:
    def __init__(self,number,word):
        self.number = number
        self.word = word

    def wordFixer(self):
        text = self.word
        text = text.lower()
        return text

    def priceFixer(self):
        text = self.number.replace(".",",")
        text = re.sub(r"$","",text)
        text = re.sub(r" ","",text)
        return text
from bot_name.spiders.textChecker import Fixer

yield{
"URUN_ADI":Fixer.wordFixer(products.xpath('//tr[2]/td[1]/text()').get()),
}
刮擦蜘蛛文件:

class Fixer:
    def __init__(self,number,word):
        self.number = number
        self.word = word

    def wordFixer(self):
        text = self.word
        text = text.lower()
        return text

    def priceFixer(self):
        text = self.number.replace(".",",")
        text = re.sub(r"$","",text)
        text = re.sub(r" ","",text)
        return text
from bot_name.spiders.textChecker import Fixer

yield{
"URUN_ADI":Fixer.wordFixer(products.xpath('//tr[2]/td[1]/text()').get()),
}
刮痧的一切都很好。 我必须用另一个类修复一些变量,因为我将有很多spider文件

当我开始爬行的时候。我得到了这个错误

AttributeError: 'str' object has no attribute 'word'

我不熟悉Python的类结构。虽然我知道Fixer类有错误,但我无法理解。

您试图将
str
值传递给
wordFixer
方法,但此方法不将
string
作为参数。将
wordFixer
方法添加到
string
参数可以帮助您。 代码如下:

class Fixer:
    def __init__(self,number):
        self.number = number
        #self.word = word

    def wordFixer(self, someString):
        text = someString.lower()
        return text


obj1 = Fixer(5)
lowerCaseStr = obj1.wordFixer("UPPER CASE STRING")

您需要创建Fixer类的实例,并在该实例上调用wordFixer。然后,对于要传递给wordFixer的字符串,您需要一个附加参数。然后,self表示Fixer类的实例。代码使用的是类而不是类的实例。products.xpath(…)的结果很可能是一个字符串。然后将该字符串指定给self,在第一行中,您试图访问该字符串没有的word属性。