面向对象---成员

类中的成员
一.定义:  在类中定义的变量和方法都称作该类的成员

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

猜你喜欢

转载自www.cnblogs.com/tcpblog/p/9708509.html
今日推荐