day13

01内置的类函数

内置类属性: python每个类的都有的属性
name #获取类的名字
doc #回去类的说明文档
dict # 对象.dict 类.dict
module 获取当前类所在模块的名字
bases 获取哦当前类的父类

class Cat :
    number = 0
    def __init__(self,name,color):
        self.name = name
        self.color = color
    def run(self):
         print("pao")

    @staticmethod
    def shout():
        print("miao")

    @classmethod
    def get_number(cls):
        print("%d" % cls.number)

if __name__ == "__main__":
    print(Cat.__name__)
    print(Cat.__doc__)

02 私有化

  • 两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问
class Person:
    def __init__(self,name,age):
        self.name = name
        self.age = age

if __name__ == "__main__":
    p1 = Person("zhang","18")

03 getter和setter

1.属性假的私有化: 声明对象属性的时候,在属性名前加一个下划线,来告诉别人,这个不能直接diaoyong
通过getter和setter来获取属性和修改属性的值

2.如果在获得对象的属性前,需要干点别的事情 添加getter
3.如果在给某个属性赋值前,干点别的事, 添加setter.

class Syudent:
    def __init__(self):
        self._name = ""
        self._score= 0
        self._age = 0

    @property    # 给属性 _name 添加getter
    def name(self):
        return self._name

    @property
    def score(self):
        return self._score

    @name.setter
    def name(self,value):
        self._name = value

    @score.setter
    def score(self,value):
        self._score = value


if __name__ == "__main__":
    stu1 = Syudent()
    stu1._name = "san"
    print(stu1.name)

    stu2 = Syudent()
    stu2.score = 100
    print(stu2.score)

04 继承

python 中类是可以继承的,并且支持多继承

class 类名(父类):
    属性
    方法
说明: python 中的所有的类默认继承 基类 object

2.能继承哪些内容?
继承:直接应有父类的属性和方法(继承后 上家还在)
a.对象的属性和方法,....都可以被继承
b.slots 不能被继承
c.getter 和 setter 会被继承

class Person :
     def __init__(self):
         self.name = ""
         self.age = ""
         self.sex = ""
     def eat(self):
         print("cc")

class Student(Person):
    """xueshrn"""
    pass



if __name__ == "__main__":
    stu = Student()
    stu.name ="ming"
    print()

你可能感兴趣的:(day13)