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

我写一个初始化方法,__init__(self)中,用self.url直接赋值,说noattribute,如图。如果我在class最开始定义了url,用self.url=... 我写一个初始化方法,__init__(self)中,用self.url 直接赋值,说no attribute,如图。如果我在class最开始定义了url,用self.url = self.url就可以,没有报错,这是为什么? 展开
 我来答
匿名用户
2019-03-04
展开全部
首先你要明白类的三大特性,封装,继承,多态。你这个主要是封装得应用。实际图二也是错误的,无法获得url的值。图一的稍微改下就对了。
def __init__( self,url):
self. url= url
这样在对类引用的时候给url赋值就行了
独娇天
2019-03-03 · TA获得超过328个赞
知道小有建树答主
回答量:439
采纳率:33%
帮助的人:61.1万
展开全部
__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了,就是图一

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式