zoukankan      html  css  js  c++  java
  • python的类和对象

    1. 内置类: dict, list, int string, tuple, set等

    2. 自定义类:def func(),   class Person(),  类的属性,实例属性等

    3. 查看对象的所有属性: dir(alex)  或是 alex.__dict__

    4. 类:拥有一类特殊的事务,如车,人等;

    class Person:
        country = 'China'  #类属性,也叫静态属性,类和实例都可以访问
        def __init__(self,*args):  #初始化方法
            self.name = args[0]  #实例属性,只有实例可以访问
            self.hp = args[1]
            self.aggr = args[2]
            self.sex = args[3]
    
        def walk(self,n):  #类方法,一般由实例对象调用
            print('%s走了%s步!' %(self.name,n))
    
    alex=Person('狗剩儿',100,1,'不详')  #实例化
    print(alex.__dict__)  #查看实例对象alex的所有属性
    print(Person.__dict__)   # print(dir(Person))
    
    print('++++++++++++++++')
    print(Person.country)
    print(alex.country)
    
    print('################')
    alex.walk(3)    #等价于这种调用:Person.walk(alex)
    print(alex.name)   #查看实例对象alex的属性值
    
    print('*****************')
    print(alex.name)
    alex.__dict__['name'] = '小黄儿' #实例的所有的属性是以字典形式存储,故可以通过字典的访问形式修改它,增加值,甚至删除它
    alex.__dict__['add'] = '新增加的一个值'
    print(alex.__dict__)
    
    Person.__dict__['country']  = '英国'  #会报错TypeError,故不能这样修改
    类的初识

         1> 类中定义的函数,是属于类的,叫类方法;

          2> 但类不能直接 调试:类.方法() ,要先实例化一个实例对象,作为参数传入才可以调用: 类.方法(实例对象) ;

          3> 一般类的方法是通过实例对象来调用的: 实例.方法()  ;

          4> 类属性也叫静态属性,且类可以直接查看,无需实例化;

          5> 类属性,实例对象也可以访问;

          6> 实例属性只能由实例访问,类不能访问;

          7> 实例的所有的属性(通过__dict__访问时)是以字典形式存储,故可以通过字典的访问形式修改它,增加值,甚至删除它,如alex.__dict__['name'] = '小黄儿';

           8> 类的所有的属性(通过__dict__访问时)只能查看,不能修改,如Person.__dict__['country'] = '英国'会报错;

    5. 类的实例应用:

    from math import  pi
    
    class Circle:
        def __init__(self,r):
            self.r=r
    
        def area(self):  #面积
            return pi*(self.r**2)
    
        def perimeter(self):  #周长
            return 2*pi*self.r
    
    c1=Circle(3)
    print(c1.area())
    print(c1.perimeter())
    求圆的面积和周长
  • 相关阅读:
    CSS属性选择器
    JS中For循环中嵌套setTimeout()方法的执行顺序
    document.getElementsByTagName()方法的返回值
    常见浏览器及其内核
    git与svn的区别
    JS解析URL参数为对象
    CSS中的伪类和为伪元素
    CSS中:first-child伪类
    CSS链接使用伪类的顺序
    CSS行内框(内联元素)
  • 原文地址:https://www.cnblogs.com/quiet-sun/p/12318797.html
Copyright © 2011-2022 走看看