理解python中的继承
我正在用python学习OOP 我在苦苦挣扎,为什么这不是我想要的理解python中的继承,python,inheritance,Python,Inheritance,我正在用python学习OOP 我在苦苦挣扎,为什么这不是我想要的 class Patent(object): """An object to hold patent information in Specific format""" def __init__(self, CC, PN, KC=""): self.cc = CC self.pn = PN self.kc = KC class USPatent(Patent):
class Patent(object):
"""An object to hold patent information in Specific format"""
def __init__(self, CC, PN, KC=""):
self.cc = CC
self.pn = PN
self.kc = KC
class USPatent(Patent):
""""Class for holding information of uspto patents in Specific format"""
def __init__(self, CC, PN, KC=""):
Patent.__init__(self, CC, PN, KC="")
pt1 = Patent("US", "20160243185", "A1")
pt2 = USPatent("US", "20160243185", "A1")
pt1.kc
Out[168]: 'A1'
pt2.kc
Out[169]: ''
我犯了什么明显的错误,以至于在USPatent实例中无法获得kc
class USPatent(Patent):
""""Class for holding information of uspto patents in Specific format"""
def __init__(self, CC, PN, KC=""):
Patent.__init__(self, CC, PN, KC="")
在这里,您通过编码KC=”“
,而不是KC=KC
将KC
传递为“”
要传递输入的KC
:
class USPatent(Patent):
""""Class for holding information of uspto patents in Specific format"""
def __init__(self, CC, PN, KC=""):
Patent.__init__(self, CC, PN, KC)
在这里,您通过编码KC=”“
,而不是KC=KC
将KC
传递为“”
要传递输入的KC
:
class USPatent(Patent):
""""Class for holding information of uspto patents in Specific format"""
def __init__(self, CC, PN, KC=""):
Patent.__init__(self, CC, PN, KC)
您正在传入一个空字符串:
Patent.__init__(self, CC, PN, KC="")
这将调用专利。始终将KC
方法设置为“
”
输入您收到的KC
的任何值:
class USPatent(Patent):
""""Class for holding information of uspto patents in Specific format"""
def __init__(self, CC, PN, KC=""):
Patent.__init__(self, CC, PN, KC=KC)
在USPatent.\uuu init\uuuu()
中,KC
只是另一个变量,就像self
、CC
和PN
一样。它要么已经设置为”
,要么设置为使用参数调用USPatent(…)
时传入的任何内容。您只需调用专利。\uuuu init\uuuu()
方法来传递您拥有的所有值
您也可以从调用中删除关键字参数语法:
Patent.__init__(self, CC, PN, KC)
您正在传入一个空字符串:
Patent.__init__(self, CC, PN, KC="")
这将调用专利。始终将KC
方法设置为“
”
输入您收到的KC
的任何值:
class USPatent(Patent):
""""Class for holding information of uspto patents in Specific format"""
def __init__(self, CC, PN, KC=""):
Patent.__init__(self, CC, PN, KC=KC)
在USPatent.\uuu init\uuuu()
中,KC
只是另一个变量,就像self
、CC
和PN
一样。它要么已经设置为”
,要么设置为使用参数调用USPatent(…)
时传入的任何内容。您只需调用专利。\uuuu init\uuuu()
方法来传递您拥有的所有值
您也可以从调用中删除关键字参数语法:
Patent.__init__(self, CC, PN, KC)
线路
Patent.__init__(self, CC, PN, KC="")
应该是
Patent.__init__(self, CC, PN, KC)
前者使用关键字样式的参数语法将名为“KC”的参数设置为值”
(空字符串)。您需要的是传递变量的值KC
。行
Patent.__init__(self, CC, PN, KC="")
应该是
Patent.__init__(self, CC, PN, KC)
前者使用关键字样式的参数语法将名为“KC”的参数设置为值”
(空字符串)。您需要的是将变量的值KC
改为传递。我仍然不明白如何使用KC=KC?@Rahul:如果您在函数中添加print(CC,PN,KC)
,会有帮助吗?您将看到这些值的变化。@Rahul注意,KC=”“
在与相对时表示不同的含义。我知道默认值,但KC=KC令人困惑。现在明白了。我仍然不明白如何使用KC=KC?@Rahul:如果你在函数中添加print(CC,PN,KC)
,会有帮助吗?您将看到这些值的变化。@Rahul注意,KC=”“
在与相对时表示不同的含义。我知道默认值,但KC=KC令人困惑。现在明白了。