python:面向对象基本知识(一)
1.类
类是现实世界或思维世界的实体在计算机中的反映 它将数据以及这些数据上的操作封装在一起 首字母大写;单词之间大写连接
2.类包含:变量和方法
变量: 类变量 实例变量 方法: 1.实例方法 2.类方法 @classmethod(装饰器) 1.特殊的类方法:构造函数 def __init__(self,x,y): 作用:让模板创建不同的对象,初始化对象的特性 默认被调用;亦可被主动调用 2.普通类方法:前面加 @classmethod装饰器 3.静态方法 @staticmethod
3.方法访问变量
1.实例方法访问实例变量 def 方法(self,x): self.实例变量=x 2.实例方法访问类变量 self.__class__.类变量= 3.类方法访问类变量 def plus_sum(cls): cls.类变量
4.成员的可见性
1.原则:只允许内部的方法操作变量,避免直接修改数据变量 2.__ 前面加 双下划线 变量变成私有 def 方法(self,x): self.__变量=x 3.在外部调用 self.__变量=x 时,不是访问而是新建一个 4.可通过__dict__查变量字典
5.类方法 @classmethod装饰器
1. 在函数前加上一个@classmethod 将self改成cls 2. 避免逻辑错乱,不要用对象调用类方法 3. 可以访问类变量 cls.sum(实例方法:self.__class__.变量 ) 4. 调用:类.类方法() (不建议用对象调用类方法,不合逻辑)
6.静态方法 @staticmethod,不推荐用此方法
# 在函数前加上一个@staticmethod # 可以同时被 对象、类 调用 # 可以访问类变量 Student.sum,和变量关联性不大的方法时用
案例
class Student(): #类变量 sum1=0 # 构造函数(类方法) def __init__(self,name,age): #实例变量 self.name=name self.age=age #调用类变量 self.__class__.sum1+=1 #构造函数默认被调用 print('学员人数',self.sum1) #通过方法对变量进行赋值(不提倡直接访问类变量的方式来修改值) def marking(self,score): self.__score=score print(self.name+'同学的成绩为:'+str(self.__score)) #通过类方法调用类变量 @classmethod def stu_sum(cls): print('学员人数',cls.sum1) #实例方法,调用内部实例方法 def do_homework(self): self.do_eng_homework() #实例方法 def do_eng_homework(self): print(self.name,'do eng homework') student1=Student('小明',21) student2=Student('小明2',21) student3=Student('小明3',21) student1.do_homework() Student.stu_sum() student1.marking(90) # 偷偷调用私有变量的方法 #print(student1.__dict__) #->{'name': '小明', 'age': 21, '_Student__score': 90} #print(student1._Student__score)
相关推荐
taiyangshenniao 2020-10-05
flycony 2020-09-23
jacktangj 2020-09-18
YENCSDN 2020-09-15
夜斗不是神 2020-11-17
huavhuahua 2020-11-20
Yasin 2020-11-16
xiaoseyihe 2020-11-16
千锋 2020-11-15
diyanpython 2020-11-12
chunjiekid 2020-11-10
wordmhg 2020-11-06
文山羊 2020-10-20
楼上小宇home 2020-09-26
世事一场大梦 2020-11-17
xiaoseyihe 2020-11-16
Morelia 2020-11-03
CloudXli 2020-11-03
文山羊 2020-10-31