python面向对象六大原则_python:面向对象基本知识(一)

本文详细介绍了Python中的类、对象的概念,包括类的定义、变量和方法。讨论了实例方法、类方法和静态方法的使用,并通过示例讲解了构造函数`__init__`、类变量的访问以及成员的可见性。同时,展示了如何通过`@classmethod`和`@staticmethod`装饰器来调用类方法和静态方法。最后,通过Student类的实例展示了类方法和实例方法的运用。
摘要由CSDN通过智能技术生成

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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值