zoukankan      html  css  js  c++  java
  • python面向对象编程2(内置属性、类属性、对象属性)

    python面向对象编程

    一、内置属性

           使用内置函数dir可以查看一个对象支持的所有属性和方法,Python中存在着很多的内置属性。
    class Person:
        def __init__(self,name):
            self.name=name
    
    
    print(dir(Person))
    # ['__class__', '__delattr__', '__dict__', ...]
    

      

           1、__doc__

            文档说明,在类中定义的。也可以直接: 类名.__doc__
    class Person:
        '''
        classname is Person
        '''
    
        def __init__(self, name):
            self.name = name
    
    
    p = Person('Jack')
    
    print(Person.__doc__)     # classname is Person
    print(p.__doc__)          # classname is Person
    

      

           2、__dict__

           把对象属性转换成字典
    class Person:
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
    p1=Person('Jack',20)
    print(p1.__dict__)        #   {'name': 'Jack', 'age': 20}
    

      

           3、python内置类属性

                 __name__:内置属性,如果直接运行该模块,__name__="__main__";如果import一个模块,该模块的__name__=模块名

                 if __name__=='__main__' :判断是否直接运行的该模块
     
                 __module__:类定义所在的模块(类的全名是‘__main__.className’,如果类位于一个导入mymod中,那么className.__module__等于mymode)
     
                 __bases__:类的所有父类构成元素(包含一个所有父类组成的元组)

    二、类属性和对象属性

           在面向对象开发中,使用类创建出来的实例是一个对象,类同样是一个对象。

           1、实例属性(对象属性)

           通过类创建的对象称为实例对象,对象属性又称为实例属性,记录对象各自的数据,不同对象的同名实例属性,记录的数据各自独立,互不干扰。在__init__方法里,以参数的形式定义。
    class Person:
        def __init__(self,name,age):
            #这里的name和age都属于实例属性,每个实例在创建时,都有自己的属性。
            self.name=name
            self.age=age
            
    #每创建一个对象,这个对象就有自己的name和age属性(对象属性)。
    p1=Person('Jack',18)
    p2=Person('Rose',19)
    print(p1.name)   #获取对象属性值:‘Jack’
    #Person称为类对象,p1和p2称为实例对象
    

      

            2、类属性

           在类对象里定义类属性。类属性可以通过类对象和实例对象获取。

           类属性只能通过类对象修改,不能通过实例对象修改。
    class Person:
        
        type='human'   #这个属性定义在类里,函数之外,我们称之为类属性
        
        def __init__(self,name,age):
            #这里的name和age都属于实例属性,每个实例在创建时,都有自己的属性。
            self.name=name
            self.age=age
     
    p1=Person('Jack',18)
    print(Person.type) #通过类对象获取类属性:human
    print(p1.type)   #通过实例对象获取类属性:human
    Person.type='hello'   #类属性通过类对象修改
    p1.type='world'   #在实例对象里添加了对象属性type,并赋值 ‘world’
    

      

  • 相关阅读:
    Asp.Net-Mvc——短信验证码
    C#-Mvc-表白墙(随机数)
    C#-折线图-从数据库中读取数据
    C#-Mvc-修改密码
    C#-Mvc-产品分页
    ECharts查询用户点击次数
    ECharts-条形图制作
    设置当前登录用户问题
    sql执行计划
    SQL中CUBE 用法
  • 原文地址:https://www.cnblogs.com/shixiaoxun/p/14444029.html
Copyright © 2011-2022 走看看