• 面向对象---成员


    类中的成员
    一.定义:  在类中定义的变量和方法都称作该类的成员
    
    class Person:
        country = "china"
        def __init__(self,name,gender):
            self.name = name
            self.gender = gender
        def think(self):
            print("%s 在思考人生!" % self.name)
    # 上面定义的类Person中 country, self.name, self.gender, think 就是他的成员
    #     其中think叫做成员方法,country 叫做类变量  其余叫做成员变量
    
    # 二 变量的分类:
    # 1 成员变量:  类创建的实例的属性,存在实例本身的变量,实例创建后可以直接获取, 类不可以,未创建之前无法调用
    class display:
        def __init__(self, size, xiangsu):
            self.size = size
            self.xiangsu = xiangsu
    
    2,类变量: 类创建时定义好的共有属性,存储在类身上, 即使类没有创建新的实例,也可以调用
    
    class dog:
        a = print("叫声:汪汪汪")
    print(dog.a)
    
    三 方法分类
    1, 成员方法: 需要传递实例才能调用类里面的方法
    class stu:
        def __init__(self, name):
            self.name = name
        def read(self):
            print("%s 在读书" % self.name)
    
    xiaoming = stu("小明")
    xiaoming.read()
    2, 类方法:  需要传递类名, 抬头@classmethod
    class stu:
        def __init__(self,name):
            self.name = name
        @classmethod
        def zhaosheng(cls,name):
            return stu(name)
    c = stu.zhaosheng("李刚")
    print(c)
    
    
    3, 静态方法: 类中的方法不需要传递当前类的对象,也不传递类名, 抬头加@staticmethod
    class stu:
        @staticmethod
        def study():
            print("学生的主要目的是学习知识! ")
    stu.study()
    
    四 .实例需要适时更新的属性:
    class leaf:
        @property   #  指定这个方法成为属性的标记
        def color(self):   #  color方法中只能有一个参数self
            return "树叶都掉光了" #  必须要返回值
    
    leaf1 = leaf()
    print(leaf1.color)
    
    
    五  ,私有概念:  类,实例中私有的成员, 别人只能在自己的类中访问,不继承,他人不能访问
          分类: __方法
    class cat:
        def __getmouse(self):
            print("抓到老鼠准备吃")
    
    #             __变量
    class cat:
        def __init__(self,name):
            self.__name = name
    cat1 = cat("hellokity")
    
    #             __类变量
    
    class cat:
        __catchmouse = "抓老鼠"
        def __init__(self):
            pass
    
  • 相关阅读:
    PCRE
    [转]如何解决严重的拖延症
    linux系统编程:setjmp和longjmp函数用法
    AWK中几个变量
    关于fork函数
    go mod
    golang+read_file+call_shell+goroutine
    vim for galang
    Linux install go
    为Git branch 打Tag
  • 原文地址:https://www.cnblogs.com/tcpblog/p/9708509.html
Copyright © 2020-2023  润新知