Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解python中的继承_Python_Inheritance - Fatal编程技术网

理解python中的继承

理解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):

我正在用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 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令人困惑。现在明白了。