我不能';我不明白Python上的类结构,我有一个;“属性错误”;
我在textChecker.py中有一个类,我想从另一个.py文件中使用这个类 textChecker.py:我不能';我不明白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
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属性。