面向对象

"""
类、对象
1、类基本作用:封装
2、一个模块可以有多个类存在
3、类只负责描述同类事物的属性和行为,不负责运行
建议:类定义和实例化在不同模块。
方法和函数的区别:
方法:设计层面;
函数:程序运行,过程式的;
"""


class Student:
    # 数据成员
    name = ''
    age = 0

    def do_homework(self):
        print(self.name)


class StudentHomework:
    pass


# 实例化类
student = Student()
# 实例化方法调研
student.do_homework()

 

"""
类:是现实世界或者思维世界的实体在计算机中的反应,他将数据与数据上的操作封装在一起
变量:类变量、实例变量
方法:类方法、实例方法、静态方法
构造函数
"""


class Student:
    # 类变量:数据成员
    sum = 0
    name = 'ab'

    # 构造函数,让模板生成不同的对象

    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.__class__.sum += 1
        print('姓名:' + ' ' + name)
        print(self.__class__.sum)

    # 实例方法:行为
    def do_homework(self):
        # 类部访问方法
        self.do_english_homework()

    def do_english_homework(self):
        pass

    # 类方法,主要用于操作类成员数据
    @classmethod
    def do_sum(cls):
        cls.sum += 1
        print(cls.sum)

    # 静态方法
    @staticmethod
    def add():
        print(Student.do_sum())
        print('this is static method')


# 实例化的时候,会隐性的调用构造函数
student = Student('test', 30)
student1 = Student('test', 30)
# 外部访问方法
student1.do_homework()
student.do_homework()
student1.add()
# print(student.__dict__)
# 构造函数也可以显性调用,且只能返回None
a = student.__init__('test', 30)
print(a)
print(type(a))
Student.do_sum()
Student.add()

 

"""
成员访问权限:公开、私有(类:外部无法直接访问)
"""


class StudentTest:
    def __init__(self):
        self.score = 0

    def mark(self, score):

        if score < 0:
            return '分数不能为负数'
        elif score > 100:
            return '分数不能大于100'
        else:
            self.score = score
            return '你本次得分' + str(self.score)

    # 私有的方法,外部不可以访问
    def __marking(self):
        pass


student_mark = StudentTest()
ba = student_mark.score = 100
print(ba)
a = student_mark.mark(200000)
print(a)

 

posted @ 2020-10-01 21:14  硬核麻麻  阅读(39)  评论(0)    收藏  举报