"""
类、对象
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)