共计 1315 个字符,预计需要花费 4 分钟才能阅读完成。
面向对象:
# 属性 - 特征
# 方法(函数)- 行为
# 构造函数 -__init__() 初始化类的特征
1 类命名
# 首字母大写;单词之间大写连接
2 构造函数 (特殊的实例方法)
# 2.1 默认被调用;亦可被主动调用
# 2.2 只能返回 None,它不是用来返回值的
# 2.3 作用:让模板创建不同的对象,初始化对象的特性
3 属性
# 类变量 (用 '=' 号赋值!!!) :Students.sum
#规范:通过方法修改类变量
# 实例变量
# __dict__ 内置函数(同__all__):对象下所有变量的字典
4 方法
# 4.1 实例方法
# self 显胜于隐 相当于 this
# 访问类变量 __class__ 指定的类 Student
# 不要操作与对象无关的变量,请用类方法
# 4.2 类方法 @classmethod
# 在函数前加上一个 @classmethod 将 self 改成 cls
# 避免逻辑错乱,不要用对象调用类方法
# 可以访问类变量 cls.sum
# 4.3 静态方法 @staticmethod,不推荐用此方法
# 在函数前加上一个 @staticmethod
# 可以同时被 对象、类 调用
# 可以访问类变量 Student.sum,和变量关联性不大的方法时用
5 成员的可见性
# 只允许内部的方法操作变量,避免直接修改数据变量
# __ 前面加 双下划线 变量变成私有
6 继承性
# 建议一个类单独成一个文件
# super 指代父类 Python3.x 和 2.x 的一个区别是:3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx
# 子类调用父类 属性、方法 时,优先使用 super()
案例:
class Student():
sum=0
def __init__(self,name1,age):
self.name=name1
self.age=age
self.__score=0
print(self.name)
#在实例方法中不要操作与对象无关的变量,请用类方法
#self.__class__.sum+=1
#print((self.__class__.sum))
#2.2 return '只能返回 None'
@classmethod
def plus_sum(cls):
cls.sum+=1
print('我们班有:',cls.sum)
@staticmethod
def add(x,y):
print('This is a static method')
def do_homework(self):
print('写作业')
def marking(self,score):
self.__score=score
print(self.name+'同学本次成绩是'+str(self.__score))
class people
#实例化
s1=Student('石敢当',20)
r1=s1.marking(98)
Student.plus_sum()
s1=Student('石当 2',22)
Student.plus_sum()
#2.1 很少调用构造函数,只是证明可用
#a=s1.__init__()
# print(a)
# print(type(a))
#print(s1.name)
#print(s1.__dict__)
#print(Student.__dict__)
s1.do_homework()
正文完