zoukankan      html  css  js  c++  java
  • 面向对象(二)

    类的成员

    1.字段

    静态字段和普通字段

    # class foo:
    #     country = '中国'            # 静态字段,属于类,代码加载的时候已经创建
    #     def __init__(self,name):
    #         self.name = name       #普通字段,属于对象
    # 普通字段对象只能用对象访问
    # 静态字段用类访问(尽量避免通过对象使用)
    hn = foo('河南')
    hb = foo('河北')
    print(foo.country)
    内存中存储方式:
    静态字段在内存中只保存一份
    普通字段在每个对象中都需要保存一份
    静态字段应用场景:
    通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段
    

    2.方法

    1.普通方法: 至少一个self, 对象调用执行
    2.静态方法: 任意参数, 类调用执行
    3.类方法 : 至少一个cls,类调用执行
    对于所有的方法,均属于类中,所以在内存中只保存一份
    class Foo:
        def __init__(self,name):
            self.name  = name
    #普通方法,对象调用执行,属于类
        def num(self):
            print(self.name)
    #把不需要通过对象调用执行的普通方法做一些改动,变成静态方法(就是python中的普通函数),通过类直接调用执行
        @staticmethod
        def show():
            print('静态方法')
    #类方法,不需要传参数,
        @classmethod
        def clas(cls):
            a = cls('a')
            a.num()
            print(cls)
    
    
    Foo.show('这是')
    obj = Foo('这是普通方法')
    obj.num()
    Foo.clas()
    

    3.属性

    由属性的定义和调用要注意一下几点

    定义时,在普通方法的基础上添加 @property 装饰器

    定义时,属性仅有一个self参数

    调用时,无需括号

              方法:foo_obj.func()

             属性:foo_obj.prop

    #属性:具有方法的写作形式,具有字段的访问形式

    class Foo1:
    def __init__(self,num):
    self.num = num
    @property
    def jisuan(self):
    a1,a2 = divmod(self.num,10)
    if a2 == 0:
    return a1
    else:
    return a1 + 1
    @jisuan.setter
    def jisuan(self,value):
    print(value)

    @jisuan.deleter
    def jisuan(self):
    print('删除')


    inp = int(input('输入:')) #输入一个
    obj = Foo1(inp) #把值封装到对象
    ret = obj.jisuan #通过字段的形式调用执行方法
    print(ret) #打印返回值

    obj.jisuan = 111 #更改
    del obj.jisuan #删除


  • 相关阅读:
    Rainmeter 雨滴桌面 主题分享
    行人检測之HOG特征(Histograms of Oriented Gradients)
    const和readonly差别
    ADB命令解析
    Java实现 蓝桥杯VIP 算法训练 接水问题
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
  • 原文地址:https://www.cnblogs.com/Z-style/p/5634671.html
Copyright © 2011-2022 走看看