Python学习第十一天

2021-03-03 22:29

阅读:419

标签:int   方法   直接   student   对象   stat   外部   私有   pass   

类的创建

语法

class 类名:
      pass

类名由一个或多个字母组成,首字母大写,其他字母小写。
直接写在类里的变量,成为类属性。
在类里定义的函数,成为类方法。

class Student:
    name = ‘张三‘  # 类属性

    def eat(self):  # 实例方法
        print(self.name + ‘在吃饭‘)

使用@staticmethod注解来定义静态方法。

    @staticmethod # 静态方法
    def drink():
        print(‘在喝水‘)

使用@classmethod注解来定义类方法

    @classmethod
    def study(cls):
        print(‘在学习‘)

初始化函数

    def __init__(self, name, age):
        self.name = name
        self.age = age  # 实例属性

对象的创建

语法:实例名 = 类名([参数])

class Student:
    childhood_name = ‘张三‘  # 类属性

    def __init__(self, name, age):
        self.name = name
        self.age = age  # 实例属性

    def eat(self):  # 方法
        print(self.name + ‘在吃饭‘)

    @staticmethod
    def drink():
        print(‘在喝水‘)

    @classmethod
    def study(cls):
        print(‘在学习‘)


stu = Student(‘xyq‘, 20)
print(stu.name)
print(stu.childhood_name)
print(stu.age)

####
xyq
张三
20

方法的调用

stu = Student(‘xyq‘, 20)
stu.eat()
Student.eat(stu)
####
xyq在吃饭
xyq在吃饭

类属性的使用

相当于类中的静态变量,使用类名.属性名来调用。

print(Student.childhood_name)

####
张三

类方法的使用

使用类名.方法名()来调用。参数是类名

Student.study()

####
在学习

静态方法的调用

使用类名.方法名()来调用,没有参数。

Student.drink()

####
在喝水

动态绑定属性和方法

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self):
        print(self.name + ‘在吃饭‘)


stu1 = Student(‘shy‘, 21)
stu2 = Student(‘xyq‘, 20)
stu2.gender = ‘男‘  # 为stu2动态绑定属性
print(stu1.name, stu1.age)
print(stu2.name, stu2.age, stu2.gender)

def show():
    print(‘这是函数,即将绑定在类上‘)

stu2.show = show
stu2.show()

####
shy 21
xyq 20 男
这是函数,即将绑定在类上

面向对象的三大特征

封装、继承、多态

封装

私有变量约定用__变量来表示

class Student:
    def __init__(self, name, age):
        self.name = name
        self.__age = age  # __age为私有变量,不希望外部访问

    def show(self):
        print(self.name + f‘今年{self.__age}岁‘)


stu = Student(‘xyq‘, 20)
stu.show()

####
xyq今年20岁

继承

默认继承Object,支持多继承。
子类必须调用父类的构造方法。
语法:

class 子类(父类1,父类2,...,父类n)
      pass
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print(‘Person类的构造函数‘)

    def info(self):
        print(self.name, self.age)


class Student(Person):
    def __init__(self, name, age, score):
        super().__init__(name, age)
        self.score = score
        print(‘Student类的构造函数‘)


Jack = Student(‘Jack‘, 17, 89)
Jack.info()   # 继承来的方法

####
Person类的构造函数
Student类的构造函数
Jack 17

方法重写

子类可以重写父类中的方法,重写后可以使用super().方法()来调用。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def info(self):
        print(self.name, self.age)


class Student(Person):
    def __init__(self, name, age, score):
        super().__init__(name, age)
        self.score = score

    def info(self):
        print(self.name, self.age, self.score)


Jack = Student(‘Jack‘, 17, 89)
Jack.info()

####
Jack 17 89

Object类

是所有类的父类
技术图片

Python学习第十一天

标签:int   方法   直接   student   对象   stat   外部   私有   pass   

原文地址:https://www.cnblogs.com/xieyuquan/p/14381435.html


评论


亲,登录后才可以留言!