• 面向对象 --类


    1.类的实例化: 调用类的过程称之为类的实例化,产生的对象也可以称之为类的一个实例

    '''
    调用类产生对象发生的事情:
        1.会产生一个空对象的名称空间
        2.会自动触发__init__,并且会将对象当做第一个参数传入。
        3.会将调用类括号内的参数一并传给__init__().
        4.self代表实例本身
        5. 补充: 如果类中没有定义构造,在实例化的时候会默认创建一个空的构造函数
    '''
    class People:
        country = 'China'
        def __init__(self,name,sex):
            print(self.__dict__)
            print(self)
            self.name = name
            self.sex = sex
            # self.fun = self.func()     @@@@@@@@@@
        def func(self):
            print(f'你的名字是:{self.name},性别是:{self.sex}')
    # p1 = People('kimi','male')
    # p1.func()
    print(People.country)
    
    class method:
        def fun():
            print('122343333333333')
    method.fun()

    2. 查看类和实例的名称空间:

    # print(People.__dict__)
    # print(p1.__dict__)

    3. 通过实例和类对类属性进行操作,类无法修改实例属性(都无法调用何来修改)

    # #类或对象的属性操作: 查增改删
    # #查
    # print(People.country)
    #
    People.num = 500
    print(People.num)
    
    # #改
    # People.country = '中国'
    # print(People.country)
    # People.name = '呵呵'
    # print(p1.name)
    # #删
    # print('#'*20)
    # # del People.country
    # # print(People.country)
    #
    # print(p1.name)
    # p1.sal = 150000000
    # print(p1.sal)
    # p1.age = 16
    # print(p1.age)
    # del p1.sal
    # print(p1.sal)

    4. 类中数据属性(类中的变量): 类中属性是给对象使用的,对象引用类中的属性,指向的都是类中同一个内存地址。

    # p_obj1 = People('tank', 'male')
    # p_obj2 = People('jason','female')
    # p_obj3 = People('大饼','female')
    # print(p_obj1.country, id(p_obj1.country))
    # print(p_obj2.country, id(p_obj2.country))
    # print(p_obj3.country, id(p_obj3.country))

    5.类中的方法: 类中的方法是给对象使用的,self 即代表函数本身,self.func= self.func()

    由不同的对象来调用就会将方法绑定给不同的对象, 并且会将对象当做第一个参数传入

    # print(People.learn)
    # print(p_obj1.learn)  # bound method
    # print(p_obj2.learn)
    # print(p_obj3.learn)

    6.对象属性的查找顺序: 先从对象自己名称空间中查找 ---》 类的名称空间中查找

  • 相关阅读:
    ServiceStack支持跨域提交
    CookiesHelper
    poj 3669 线段树成段更新+区间合并
    poj2528 线段树+离散化
    hdu3308 线段树 区间合并
    hdu1542矩阵的并 线段树+扫描线
    hdu1255 矩阵的交 线段树+扫描线
    简单单点更新线段树
    树状数组模版
    hdu1873优先队列
  • 原文地址:https://www.cnblogs.com/bigbox/p/11929912.html
Copyright © 2020-2023  润新知