Python基本教程09 – 面向工具深入
当前位置:以往代写 > Python教程 >Python基本教程09 – 面向工具深入
2019-06-14

Python基本教程09 – 面向工具深入

Python基本教程09 – 面向工具深入

我们熟悉了工具和类的根基观念。我们将进一步拓展,以便能实际运用工具和类。

挪用类的其它信息

上一讲中提到,在界说要领时,必需有self这一参数。这个参数暗示某个工具。工具拥有类的所有性质,那么我们可以通过self,挪用类属性。

class Human(object):
    laugh = 'hahahaha'
    def show_laugh(self):
        print self.laugh
    def laugh_100th(self):
        for i in range(100):
            self.show_laugh()
li_lei = Human()          
li_lei.laugh_100th()

这里有一个类属性laugh。在要领show_laugh()中,通过self.laugh,挪用了该属性的值。

还可以用沟通的方法挪用其它要领。要领show_laugh(),在要领laugh_100th中()被挪用。

通过工具可以修改类属性值。但这是危险的。类属性被所有同一类及其子类的工具共享。类属性值的改变会影响所有的工具。

__init__()要领

__init__()是一个非凡要领(special method)。Python有一些非凡要领。Python会非凡的看待它们。非凡要领的特点是名字前后有两个下划线。

假如你在类中界说了__init__()这个要领,建设工具时,Python会自动挪用这个要领。这个进程也叫初始化。

class happyBird(Bird):
    def __init__(self,more_words):
        print 'We are happy birds.',more_words
summer = happyBird('Happy,Happy!')

这里担任了Bird类,它的界说见上一讲。

屏幕上打印:

We are happy birds.Happy,Happy!

我们看到,尽量我们只是建设了summer工具,但__init__()要领被自动挪用了。最后一行的语句(summer = happyBird…)先建设了工具,然后执行:

summer.__init__(more_words)

'Happy,Happy!' 被通报给了__init__()的参数more_words

工具的性质

我们讲到了很多属性,但这些属性是类的属性。所有属于该类的工具会共享这些属性。好比说,鸟都有羽毛,鸡都不会飞。

在一些环境下,我们界说工具的性质,用于记录该工具的出格信息。好比说,人这个类。性别是某小我私家的一本性质,不是所有的人类都是男,可能都是女。这本性质的值跟着工具的差异而差异。李雷是人类的一个工具,性别是男;韩美美也是人类的一个工具,性别是女。

当界说类的要领时,必需要通报一个self的参数。这个参数指代的就是类的一个工具。我们可以通过哄骗self,来修改某个工具的性质。好比用类来新建一个工具,即下面例子中的li_lei, 那么li_lei就被self暗示。我们通过赋值给self.attribute,给li_lei这一工具增加一些性质,好比说性此外男女。self会通报给各个要领。在要领内部,可以通过引用self.attribute,查询或修改工具的性质。

这样,在类属性的之外,又给每个工具增添了各自特色的性质,从而能描写多样的世界。

class Human(object):
    def __init__(self, input_gender):
        self.gender = input_gender
    def printGender(self):
        print self.gender
li_lei = Human('male') # 这里,'male'作为参数通报给__init__()要领的input_gender变量。
print li_lei.gender
li_lei.printGender()

在初始化中,将参数input_gender,赋值给工具的性质,即self.gender。

li_lei拥有了工具性质gender。gender不是一个类属性。Python在成立了li_lei这一工具之后,利用li_lei.gender这一工具性质,专门储存属于工具li_lei的特有信息。

工具的性质也可以被其它要领挪用,挪用要领与类属性的挪用相似,正如在printGender()要领中的挪用。

总结

通过self挪用类属性

__init__(): 在成立工具时自动执行

类属性和工具的性质的区别

    关键字:

在线提交作业