永发信息网

python中object has no attribute问题

答案:2  悬赏:50  手机版
解决时间 2021-01-31 04:29
__author__ = 'CQC'
# -*- coding:utf-8 -*-
import urllib.request
import re
import time
import _thread
#糗事百科爬虫类
class QSBK:
def Start(self):
print(u"正在读取糗事百科,按回车查看新段子,Q退出")
#使变量为True,程序可以正常运行
self.enable = True
#先加载一页内容
self.loadPage()
#局部变量,控制当前读到了第几页
nowPage = 0
while self.enable:
if len(self.stories)>0:
#从全局list中获取一页的段子
pageStories = self.stories[0]
#当前读到的页数加一
nowPage += 1
#将全局list中第一个元素删除,因为已经取出
del self.stories[0]
#输出该页的段子
self.getOneStory(pageStories,nowPage)

spider = QSBK()
spider.Start()
报line 101, in <module>
spider.Start()
AttributeError: 'QSBK' object has no attribute 'Start'
为什么,求大神
最佳答案
好像没有继承Object
首先什么是新式类 经典类呢:

#新式类是指继承object的类
class A(obect):
...........
#经典类是指没有继承object的类
class A:
...........

Python中推荐大家使用新式类 1.新的肯定好哈,已经兼容经典类
2.修复了经典类中多继承出现的bug
下面我们着重说一下多继承的bug 如图:

BC 为A的子类, D为BC的子类 ,A中有save方法,C对其进行了重写
在经典类中 调用D的save方法 搜索按深度优先 路径B-A-C, 执行的为A中save 显然不合理
在新式类的 调用D的save方法 搜索按广度优先 路径B-C-A, 执行的为C中save
(对深度优先,广度优先 有不解的点这里)

#经典类
class A:
def __init__(self):
print 'this is A'

def save(self):
print 'come from A'

class B(A):
def __init__(self):
print 'this is B'

class C(A):
def __init__(self):
print 'this is C'
def save(self):
print 'come from C'

class D(B,C):
def __init__(self):
print 'this is D'

d1=D()
d1.save() #结果为'come from A

#新式类
class A(object):
def __init__(self):
print 'this is A'

def save(self):
print 'come from A'

class B(A):
def __init__(self):
print 'this is B'

class C(A):
def __init__(self):
print 'this is C'
def save(self):
print 'come from C'

class D(B,C):
def __init__(self):
print 'this is D'

d1=D()
d1.save() #结果为'come from C'
全部回答
问题定位: 查看import库的源文件,发现源文件存在且没有错误,同时存在源文件的.pyc文件 问题解决方法: 命名py脚本时,不要与python预留字,模块名等相同。 删除该库的.pyc文件(因为py脚本每次运行时均会生成.pyc文件;在已经生成.pyc文件的情况下,若代码不更新,运行时依旧会走pyc,所以要删除.pyc文件),重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可。 pyc文件介绍 pyc文件,是python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。这个pyc字节码文件,经过python解释器,会生成机器码运行(这也是为什么pyc文件可以跨平台部署,类似于java的跨平台,java中jvm运行的字节码文件)。下次调用直接调用pyc,而不调用py文件。直到你这个py文件有改变。python解释器会检查pyc文件中的生成时间,对比py文件的修改时间,如果py更新,那么就生成新的pyc。 希望能帮到你!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁知道腾讯游戏里面有几个 手残不能玩的游戏
中国移动(诚嘉大洋指定专营店)地址好找么,我
马云的支付宝对银行冲击大吗?
我有件很好看的绒衣越洗越大...用什么办法能
起卒的意思是什么啊?知道的请说下!
大同新雷驾校什么时候考三科十月
中国电信白灰围营业厅地址在哪,我要去那里办
利友家具(新铺店)地址有知道的么?有点事想
某住宅楼建设过程中,考虑到工程安全,施工单
共享文件夹有的电脑访问要密码,有的又不要?
中国移动(兵科指定专营店)地址在什么地方,想
夏璜的意思是什么啊?知道的请说下!
中国电信(向东路营业厅)地址在什么地方,我要
沈阳华圣寺能求子吗?或是周边哪里求子灵验。
如何使每次产生的随机数互不相同
推荐资讯
汇北鑫源物流怎么去啊,我要去那办事
royal·皇家圣雪英国高质干洗(凤凰店)地
为什么华为p9照的像片没有三星s7照的像素清晰
人在平静呼气时,肋骨间的肌肉和膈肌所处的状
韧带损伤如何恢复
MH2G达人进!!谢谢了,大神帮忙啊
忍者村大战3.2八尾大炮如何绕圈
STM8L单片机 ADC实验, 改变PD7(24PIN)的电压,
新曙光学校(潍坊奎文区)地址好找么,我有些事
吐槽的【吐】是读第四声还是第二声
手机上如何把exe文件转换为swf文件
星巴克(佛山乐从店)地址好找么,我有些事要过
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?