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 #删除


  • 相关阅读:
    IDEA配置GIT
    夜游神安卓模拟器安装
    jira中使用eazyBI
    [Google Guava]学习--新集合类型Multimap
    [Google Guava]学习--新集合类型Multiset
    Java自己实现双向链表LinkList
    JVM学习之jstat使用方法
    Mycat+Mysql 插入数据报错 i[Err] 1064
    Windows配置mycat
    navicat cannot create file 文件名、目录名或卷标语法不正确 解决方法
  • 原文地址:https://www.cnblogs.com/Z-style/p/5634671.html
Copyright © 2011-2022 走看看