zoukankan      html  css  js  c++  java
  • python编程学习进度四

    今天自己写了 一个简单代码帮助自己理解python编程中的一些类的关系以及一些函数属性, 总结如下:

    1,在python当中一切皆对象,每产生一个对象会对应三个属性:id、类型type和数值
    2,创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性:而类中有两种属性:数据属性和函数属性,其中类的数据属性是共享给所有对象的,而类的函数属性是绑定到所有对象的。 3,在类的内部来说,__init__是类的函数属性,但是对于对象来说,就是绑定方法。
    4,命名空间的问题:先从对象的命名空间找,随后在从类的命名空间找,随后在从父类的命名
    空间找。
    5,所谓初始化构造函数就是在构造对象的同时被对象自动调用,完成对事物的初始化,一个类只要生成一个类对象,它一定会调用初始化构造函数.
    特点:
    1>一个类中只能有一个初始化构造函数
    2>不能有返回值
    3>可以用它来为每个实例定制自己的特征
    6,方法重写指在子类中重新定义父类中已有的方法,这中现象叫做方法的重写
    举例

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    class People:
        def __init__(self,name,age):
            self.name = name
            self.age = age
            self.tell()
    
        def tell(self):
            print("%s---%s"%(self.name,self.age))
    
    class Student(People):
        def tell(self):
            print("呵呵!")
    
    if __name__ == '__main__':
        student = Student("alex",20)
        #查看Student所有的父类
        print(Student.__bases__)
        #查看最近的父类
        print(Student.__base__)
        #student既是Student类,又是People类
        print(isinstance(student,Student))
        print(isinstance(student,People))

    运行结果

    在此例中,子类Student和父类People都定义了Tell方法,子类没有定义构造函数,此时调用的是父类的构造函数,但注意父类构造函数在调用tell()方法时,调用的是子类的tell()函数,因为两个函数重名,相当于重写了父类的函数,此时要调用子类重写后的函数。

  • 相关阅读:
    DBCC修复不同情况下的损坏
    Python单例模式的4种实现方法
    osx 安装redis
    tornado系列文章
    Python中__init__和__new__的区别详解
    Tornado源码分析之http服务器篇
    tornado.ioloop.IOLoop相关文章
    How to use POST method in Tornado?
    https://github.com/diogobaeder/pycket
    Frequently Asked Questions
  • 原文地址:https://www.cnblogs.com/lover995/p/12261927.html
Copyright © 2011-2022 走看看