本文将分享Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx'的详细内容,并且还将对python类属性继承进行详尽解释,此外,我们还将为大家带来关于Attr
本文将分享Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx'的详细内容,并且还将对python 类属性继承进行详尽解释,此外,我们还将为大家带来关于AttributeError: 'Class' 对象没有属性 'rep_call'、AttributeError:'bool'对象没有属性'le'— pyqt —将文本放入python变量、AttributeError:'NoneType'对象没有属性'text',(xml,python)、AttributeError:'str'对象没有属性'decode' Python 3和Python 2.7兼容性的相关知识,希望对你有所帮助。
本文目录一览:- Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx'(python 类属性继承)
- AttributeError: 'Class' 对象没有属性 'rep_call'
- AttributeError:'bool'对象没有属性'le'— pyqt —将文本放入python变量
- AttributeError:'NoneType'对象没有属性'text',(xml,python)
- AttributeError:'str'对象没有属性'decode' Python 3和Python 2.7兼容性
Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx'(python 类属性继承)
我有以下基类和子类:
class Event(object): def __init__(self, sr1=None, foobar=None): self.sr1 = sr1 self.foobar = foobar self.state = STATE_NON_EVENT# Event class wrappers to provide syntatic sugarclass TypeTwoEvent(Event): def __init__(self, level=None): self.sr1 = level self.state = STATE_EVENT_TWO
在我的代码中,进一步,我正在检查一个TypeTwoEvent
类的实例,检查我知道在基类中存在的字段-我希望将其默认为valueNone
。但是,我的代码引发以下异常:
AttributeError:“ TypeTwoEvent”对象没有属性“ foobar”
我的印象是,基类字段将由子类继承,并且创建子类的实例将实例化基类(从而调用其构造函数)…
我在这里想念什么?为什么TypeTwoEvent
没有一个foobar
属性-当其所来源的基本类有一个foobar
属性?
答案1
小编典典您的子类应为:
class TypeTwoEvent(Event): def __init__(self, level=None, *args, **kwargs): super(TypeTwoEvent, self).__init__(*args, **kwargs) self.sr1 = level self.state = STATE_EVENT_TWO
因为您覆盖了__init__
方法,所以如果您希望发生父行为,则需要调用父方法。
记住,__init__
不是一个奇怪的名字的特殊方法。这只是创建对象后自动调用的方法。否则,这是一个普通方法,并且适用普通继承规则。
super(ClassName, self).__init__(arguments, that, goes, to, parents)
是调用方法的父版本的语法。
对于*args
和**kwargs
,它只是确保我们捕获传递给__init__
父方法的所有其他参数,因为您的子方法签名没有做到,并且父方法需要这些参数才能工作。
AttributeError: 'Class' 对象没有属性 'rep_call'
如何解决AttributeError: ''Class'' 对象没有属性 ''rep_call''?
我想使用 Pytest 和 Selenium 测试 Web 应用程序。我只想在测试方法失败时捕获屏幕截图。我有以下固定装置:
def driver_init(request):
# set up driver
def close_driver():
driver.quit()
request.cls.driver = driver
request.addfinalizer(close_driver)
yield driver
if request.node.rep_call.Failed:
try:
allure.attach(driver.get_screenshot_as_png(),name=request.function.__name__,attachment_type=AttachmentType.PNG)
except:
pass
但是,当我运行此代码并且测试方法失败时,我收到以下错误:
AttributeError: ''Class'' 对象没有属性 ''rep_call''。
我做错了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
AttributeError:'bool'对象没有属性'le'— pyqt —将文本放入python变量
我使用Qt
Designer创建了一个UI,该UI具有简单的行输入和一个按钮。我试图在python变量中获取行编辑的输入,但这使我出错。这是我的python代码:
from PyQt4 import QtGuiimport sysimport progimport MySQLdbclass ExampleApp(QtGui.QMainWindow, prog.Ui_Program): def __init__(self, parent=None): super(ExampleApp, self).__init__(parent) self.setupUi(self) self.pushButton.clicked.connect(functioni)def functioni (self): db = MySQLdb.connect(host="localhost", user="root", passwd="*****", db="testpy") cur = db.cursor() cur.execute("INSERT INTO Name (Name) VALUES (?)", self.le.text()) #self.le.text() is giving me trouble... db.commit() cur.close() db.close()def main(): app = QtGui.QApplication(sys.argv) form = ExampleApp() form.show() app.exec_()if __name__ == ''__main__'': main()
我的用户界面代码具有以下内容:
self.le = QtGui.QLineEdit(self.centralwidget)self.le.setObjectName(_fromUtf8("le"))
当我运行python程序时,出现以下错误:
Traceback (most recent call last): File "main.py", line 20, in functioni cur.execute("INSERT INTO Name (Name) VALUES (?)", self.le.displayText())AttributeError: ''bool'' object has no attribute ''le''
之前可能已经问过这个问题,但我已经尝试了所有方法,但无法正常工作!我不知道这里是什么布尔。该解决方案可能微不足道,但如果有人指出我的错误,我将不胜感激。谢谢。
这是我的完整ui代码:
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file ''prog.ui''## Created by: PyQt4 UI code generator 4.11.4## WARNING! All changes made in this file will be lost!from PyQt4 import QtCore, QtGuitry: _fromUtf8 = QtCore.QString.fromUtf8except AttributeError: def _fromUtf8(s): return stry: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding)except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig)class Ui_Program(object): def setupUi(self, Program): Program.setObjectName(_fromUtf8("Program")) Program.resize(351, 138) Program.setLayoutDirection(QtCore.Qt.LeftToRight) self.centralwidget = QtGui.QWidget(Program) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.formLayout = QtGui.QFormLayout(self.centralwidget) self.formLayout.setObjectName(_fromUtf8("formLayout")) self.label = QtGui.QLabel(self.centralwidget) self.label.setObjectName(_fromUtf8("label")) self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.label) self.le = QtGui.QLineEdit(self.centralwidget) self.le.setObjectName(_fromUtf8("le")) self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.le) self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.pushButton) Program.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(Program) self.menubar.setGeometry(QtCore.QRect(0, 0, 351, 25)) self.menubar.setObjectName(_fromUtf8("menubar")) self.menuSubmit = QtGui.QMenu(self.menubar) self.menuSubmit.setObjectName(_fromUtf8("menuSubmit")) Program.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(Program) self.statusbar.setObjectName(_fromUtf8("statusbar")) Program.setStatusBar(self.statusbar) self.toolBar = QtGui.QToolBar(Program) self.toolBar.setObjectName(_fromUtf8("toolBar")) Program.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar) self.actionSubmit = QtGui.QAction(Program) self.actionSubmit.setObjectName(_fromUtf8("actionSubmit")) self.menuSubmit.addAction(self.actionSubmit) self.menubar.addAction(self.menuSubmit.menuAction()) self.retranslateUi(Program) QtCore.QMetaObject.connectSlotsByName(Program) def retranslateUi(self, Program): Program.setWindowTitle(_translate("Program", "Program", None)) self.label.setText(_translate("Program", "Name", None)) self.pushButton.setText(_translate("Program", "Submit", None)) self.menuSubmit.setTitle(_translate("Program", "Submit", None)) self.toolBar.setWindowTitle(_translate("Program", "toolBar", None)) self.actionSubmit.setText(_translate("Program", "Submit", None))
答案1
小编典典您正在滥用“ self”参数,因为函数本身应该在类缩进中(因此,它应该是类的方法)或将实例作为参数接收。
在您的代码中,functioni
将仅接收信号参数(所有按钮(包括QPushButtons)都具有选中的参数)。这意味着您functioni
使用False
参数作为调用(单击后QPushButton处于选中状态),并且self
实际上是一个布尔变量。请记住,这self
只是python中的一个约定,它实际上是一个普通的位置参数,您可以根据需要调用它。
要解决您的问题,functioni
只需通过添加正确的缩进(并调用self.functioni
信号连接)就可以使函数成为类方法。如果出于任何原因需要将函数保留在类之外,则可以添加文本或类实例作为参数:
self.pushButton.clicked.connect(lambda checked: functioni(self.le.text()) self.pushButton.clicked.connect(lambda checked: functioni(self))
无关,但重要。请记住,execute
sqlite的第二个参数必须是可迭代的(元组,列表等)。如果只有一个参数,则可以在关闭括号之前通过添加逗号来获取单个值元组:
cur.execute("INSERT INTO Name (Name) VALUES (?)", (self.le.text(), ))
AttributeError:'NoneType'对象没有属性'text',(xml,python)
如何解决AttributeError:''NoneType''对象没有属性''text'',(xml,python)?
我有一个xml文件,
<?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
<edit-config category = "xyz">
<target category="cooking">
<author>Giada De Laurentiis</author>
</target>
</edit-config>
</rpc>
我要打印作者姓名,我是这样写的,
from xml.etree.ElementTree import ElementTree
tree = ElementTree()
root = tree.parse("test.xml")
print (''Name: '',root.find(''rpc/edit-conf/target/author'').text)
我遇到以下错误,我缺少什么吗?
解决方法
见下文
import xml.etree.ElementTree as ET
xml = ''''''<?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
<edit-config category = "xyz">
<target category="cooking">
<author>Giada De Laurentiis</author>
</target>
</edit-config>
</rpc>''''''
root = ET.fromstring(xml)
author = root.find(''.//{urn:ietf:params:xml:ns:netconf:base:1.0}author'')
print(author.text)
输出
Giada De Laurentiis
,
可以通过以下XPATH访问该标签:
a = root.find(''./{urn:ietf:params:xml:ns:netconf:base:1.0}edit-config/{urn:ietf:params:xml:ns:netconf:base:1.0}target/{urn:ietf:params:xml:ns:netconf:base:1.0}author'')
# or ".//{urn:ietf:params:xml:ns:netconf:base:1.0}author" for skip middle sub elements and find subelements,on all levels.
Out[7]: <Element ''{urn:ietf:params:xml:ns:netconf:base:1.0}author'' at 0x7f01f9c1a220>
print(a.text)
rpc标记中的 xmlns
引用XML namespace(用于防止在尝试混合XML时发生冲突),并且在rool元素的XML文件中,您将urn:ietf:params:xml:ns:netconf:base:1.0
视为命名空间。 / p>
要逐步找到正确的Xpath,请尝试:
In [1]: root.find(''./'')
Out[1]: <Element ''{urn:ietf:params:xml:ns:netconf:base:1.0}edit-config'' at 0x7f01f9c16ef0>
In [2]: root.findall(''./{urn:ietf:params:xml:ns:netconf:base:1.0}edit-config/'')
Out[2]: [<Element ''{urn:ietf:params:xml:ns:netconf:base:1.0}target'' at 0x7f01fa2a4ea0>]
In [3]: root.findall(''./{urn:ietf:params:xml:ns:netconf:base:1.0}edit-config/{urn:ietf:params:xml:ns:netconf:base:1.0}target/'')
Out[3]: [<Element ''{urn:ietf:params:xml:ns:netconf:base:1.0}author'' at 0x7f01f9c1a220>]
In [4]: root.findall(''./{urn:ietf:params:xml:ns:netconf:base:1.0}edit-config/{urn:ietf:params:xml:ns:netconf:base:1.0}target/{urn:ietf:params:xml:ns:netconf:base:1.0}author'')
Out[4]: [<Element ''{urn:ietf:params:xml:ns:netconf:base:1.0}author'' at 0x7f01f9c1a220>]
,
xml标记为<edit-config category = "xyz">
代码正在搜索''/edit-conf/''
使它们相同就可以了
AttributeError:'str'对象没有属性'decode' Python 3和Python 2.7兼容性
如何解决AttributeError:''str''对象没有属性''decode'' Python 3和Python 2.7兼容性?
我正在尝试比较两个字符串列表:
text_line = [u''\u2502 id \u2502 na \u2502 email \u2502'',u''\u2502 \u2502 me \u2502 \u2502'']
print( text_line == [
"│ id │ na │ email │","│ │ me │ │",])
它发出警告: Unicode警告:Unicode相等比较未能将两个参数都转换为Unicode 并显示 False 。
如果我在列表中每个字符串的末尾添加 .decode(''utf-8''),则它在Python 2.7中可以正常工作并显示 True :>
print( text_line == [
"│ id │ na │ email │".decode(''utf-8''),"│ │ me │ │".decode(''utf-8''),])
但它在Python 3.X中不起作用,并出现以下错误:
AttributeError:''str''对象没有属性''decode''
是否有一种适用于Python 2.7和Python 3.X的方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
今天关于Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx'和python 类属性继承的讲解已经结束,谢谢您的阅读,如果想了解更多关于AttributeError: 'Class' 对象没有属性 'rep_call'、AttributeError:'bool'对象没有属性'le'— pyqt —将文本放入python变量、AttributeError:'NoneType'对象没有属性'text',(xml,python)、AttributeError:'str'对象没有属性'decode' Python 3和Python 2.7兼容性的相关知识,请在本站搜索。
本文标签: