python中init方法无法初始化,请大神赐教

我写一个初始化方法,__init__(self)中,用self.url 直接赋值,说no attribute,如图。如果我在class最开始定义了url,用self.url = self.url就可以,没有报错,这是为什么?

首先你要明白类的三大特性,封装,继承,多态。你这个主要是封装得应用。实际图二也是错误的,无法获得url的值。图一的稍微改下就对了。
def __init__( self,url):
self. url= url
这样在对类引用的时候给url赋值就行了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-03
__init__相当于C++中的构造函数,创建这个类的实例时自动调用这个函数
p=Person('Swaroop')
就会自动 调用 __init__函数
self是约定俗成的名字,也可以用其它名字,只有是类方法的第一个参数就成
def sayHi(self):
self就指类实例本身
p.sayHi()
这里sayHi方法中的self就是p追问

图一是无效的,图三才行,这两个有什么区别,怎么修改,

self.url = '#一个有效的url完整链接',如果按你的说法,应该可以实例化,但是最终报no attribute,

难道需要在LagouSpider()括号中传入url?但是网上很多都不需要,直接初始化init就能获取url了,就是图一

本回答被网友采纳