美文网首页
类和对象

类和对象

作者: CaesarsTesla | 来源:发表于2017-04-03 16:17 被阅读26次

1、基本使用

class MyClass(object):
    message = 'Hello Developer'

    def show(self):
        print(self.message)

def main():
    print(MyClass.message)

    MyClass.message = 'Hello mudy'#修改成员变量
    print(MyClass.message)

    inst = MyClass()#实例化一个MyClass的对象
    inst.show()

if __name__ == '__main__':
    main()
Hello Developer
Hello mudy
Hello mudy

  • 类名为MyClass
  • 该类中定义了一个成员变量message,并对其赋了初始值
  • 类中定义了成员函数show(self),注意类中的成员函数必须要带参数self
  • 参数self是对象本身的引用,在成员函数体可以引用self参数获得对象的信息

2、构造函数
 构造函数是一种特殊的类成员方法,主要用来在创建对象时初始化对象,即为对象成员变量赋初始值。Python中的类构造函数用__init__命名,为MyClass添加构造函数方法,并实例化一个对象。

class MyClass(object):
    message = 'Hello ,Developer'

    def show(self):
        print(self.message)

    def __init__(self):#构造函数在MyClass被实例化时被Python解释器自动调用,
        print('构造函数被调用')

def main():
    inst = MyClass()
    inst.show()

if __name__=='__main__':
     main()
构造函数被调用
Hello ,Developer
  • 默认参数

class MyClass:
    message = 'Hello Developer'

    def show(self):
        print(self.message)

    def __init__(self,name='mudy',age='18'):
        print('构造函数被调用了,参数是',name,' ',age)

def main():
    inst = MyClass()
    inst.show()

    inst2 = MyClass('huy')
    inst2.show()

    inst3 = MyClass('dabao','17')
    inst3.show()

    inst4 = MyClass(age='20')
    inst4.show()
if __name__ == '__main__':
    main()
构造函数被调用了,参数是 mudy   18
Hello Developer
构造函数被调用了,参数是 huy   18
Hello Developer
构造函数被调用了,参数是 dabao   17
Hello Developer
构造函数被调用了,参数是 mudy   20
Hello Developer

注意:在构造函数中不能有返回值
 在Python中不能定义多个构造函数,但可以通过为命名参数提供默认值的方式达到利用多种方式构造对象的目的。

3、析构函数

 析构函数是构造函数的反向函数,在销毁(释放)对象时将调用它们。析构函数往往用来做“清理善后”的工作,例如数据库链接对象可以在析构函数中释放对数据库资源的占用。Python中为类定义析构函数的方法是在类中定义一个名字为__del__的没有返回值和参数的函数。
 与Java类似,Python解释器的堆中存储着正在运行的应用程序所建立的所有对象,但是他们不需要程序代码来显示地释放,因为Python解释器会自动跟踪他们的引用计数,并自动销毁(同时调用析构函数)已经没有被任何变量引用的对象,在这种场景中,开发者并不知道对象的析构函数何时会被调用,同时Python提供了显示销毁对象的方法:使用del关键字。

class MyClass(object):
    message = 'Hello Developer'

    def show(self):
        print(self.message)

    def __init__(self,name='mudy',age='18'):
        print('构造函数被调用,参数是',name,age)

    def __del__(self):
        print('析构函数被调用')
def main():
    inst = MyClass()
    inst.show()

    inst2 = MyClass('huy')
    inst2.show()

    del inst,inst2

    inst3 = MyClass('huy','18')
    inst3.show()
    del inst3
if __name__ == '__main__':
    main()
构造函数被调用,参数是 mudy 18
Hello Developer
构造函数被调用,参数是 huy 18
Hello Developer
析构函数被调用
析构函数被调用
构造函数被调用,参数是 huy 18
Hello Developer
析构函数被调用

如果不手动del,则输出结果如下:

构造函数被调用,参数是 mudy 18
Hello Developer
构造函数被调用,参数是 huy 18
Hello Developer
构造函数被调用,参数是 huy 18
Hello Developer
析构函数被调用
析构函数被调用
析构函数被调用

相关文章

  • 对象、类对象和元类对象

    http://www.tuicool.com/articles/mmyuUr http://blog.csdn.n...

  • python 类和对象

    类和对象 目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的...

  • 类,类对象和实例对象

    Python 的类定义写完之后就成了一个类对象,而引用这个类对象的就是实例对象。 类中定义的属性和方法都是静态属性...

  • 面相对象-02类和对象

    类和对象 目标 ●类和对象的概念●类和对象的关系●类的设计 01.类和对象的概念 类和对象是面向对象编程的两个核心...

  • python语法入门五

    类和对象 类和对象 基础 继承:python为多继承 类、类对象和实例对象 当实例对象声明后,再删除类对象,那么该...

  • 13.Python类和对象

    目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的 两个 核...

  • 12.Python类和对象

    目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的 两个 核...

  • 类和对象 ​​​

  • 类和对象

    对象=属性+方法 self 由同一个类可以生成无数对象,当一个对象的方法被调用是,对象会将自身的引用作为第一个参数...

  • 类和对象

    对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对...

网友评论

      本文标题:类和对象

      本文链接:https://www.haomeiwen.com/subject/aqqoottx.html