• python面向对象


    python类中的构造函数和析构函数

    class Employee:
        count=0
    #构造函数
        def __init__(self,name,salary):
            self.name=name
            self.salary=salary
            Employee.count=Employee.count+1
    #析构函数
        def __del__(self):
            print("over")
        def dispaly(self):
            print("姓名:"+self.name)
    e=Employee("wanghuaiyu",5)
    e.dispaly()
    

    你也可以使用以下函数的方式来访问属性:

    • getattr(obj, name[, default]) : 访问对象的属性。
    • hasattr(obj,name) : 检查是否存在一个属性。
    • setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。
    • delattr(obj, name) : 删除属性。

    简单的类级继承

    class People:
    #构造函数
        def __init__(self,name):
            self.name=name
            print("父类构造方法")
    #析构函数
        def __del__(self):
            print("over")
        def dispalyName(self):
            print("姓名:"+self.name)
    
    class student(People):
        def __init__(self,name,age):
            People.__init__(self,name)
            self.age=age
            print("子类构造方法")
        def showAge(self):
            print(self.age)
    p=student("wanghuaiyu",16)
    p.dispalyName()
    p.showAge()

     类的属性与方法

    class People:
    #构造函数(__init__属于特殊方法
        #_加变量是protected类型
        _age=10
        def __init__(self,name):
            #__加变量是private类型
            self.__name=name
            print("父类构造方法")

    特殊的属性与方法

    (1)__slots__:该属性是一个保存字符串的元组,使用该属性后我们只能添加该类__slots__中包含的属性和函数

    #未使用,此时代码正常
    class People:
        pass
    p=People()
    p.name="wanghuaiyu"
    p.age=20
    #使用后,此时最后一行报错因为__slots__中没有age属性
    class People:
        __slots__ = ('name')
    p=People()
    p.name="wanghuaiyu"
    p.age=20


    (2)__str()__(self):函数返回一个字符串

    class People:
        __slots__ = ('name','age')
        def __str__(self):
            return "wanghuaiyu:%d"%self.age
    p=People()
    p.name="wanghuaiyu"
    p.age=20
    
    print(p.__str__())
  • 相关阅读:
    关于Blog的思考
    程序员应知——简单就是美
    关于知识分享和微软TechEd Roadshow
    在网络上营销你自己——兼《口碑》书评
    《与孩子一起学编程》书评
    两个要素:人和思考——《软件人才管理的艺术》书评
    程序员应知——也说重构
    《精通Android 2》书评
    oracle利用正则表达式提取字符串中的数字
    oracle 身份证校验函数
  • 原文地址:https://www.cnblogs.com/837634902why/p/13676161.html
Copyright © 2020-2023  润新知