# 封装 类=属性+行为 抽像 -
class StudentV2:

# 类属性 所有的实例可以共享 。不属于任何实例的特性。
is_people = True

# 类方法 1、装饰器。2、参数是cls 表示类本身。
@classmethod
def pepole_aciton(cls):
print("吃饭,睡觉!!")
print(cls.is_people)

# 初始化工作
def __init__(self,name,stu_id,class_name,city="上海"):
self.name = name # 实例属性
self.stu_id = stu_id
self.class_name = class_name
self.city = city
self._protect_friend = "鸡腿"
self.__private_money = 500
print("初始化工作完成,我已经有了具体的名字、学号、班级、城市这四个属性。")

# 行为 self就是我,我就是self。 类实例化之后,明确我是谁。
def attend_course(self):
# 300行 拆成四个小功能
self._private_func()
print("{}正在学习类和对象。".format(self.name))
return

def _private_func(self):
pass
def __private_func_deep(self):
pass

# 行为
def do_homework(self):
print("{}在写作业中。。".format(self.name))
return

# 开放api,获取私有变量值。
def get_counts(self):
print("我有{} 个 {}".format(self.__private_money,self._protect_friend))
#print(self._protect_friend)

# # 实例化类的同时,会主动调用init函数。
# luoluo = StudentV2("罗罗","222222","python17","北京")
# print(luoluo.stu_id)
# luoluo.attend_course() # 行为
#
# hukai = StudentV2("胡凯","333111","python17","深圳")
# print(id(hukai))
# hukai.do_homework()

# 类属性的调用
# print(StudentV2.is_people)
# # print(StudentV2.name) # 类是没有name属性
# StudentV2.pepole_aciton()

luoluo = StudentV2("罗","222222","python17","北京")
# print(luoluo.is_people)
# print(luoluo.name)
# print(luoluo._protect_friend)
# print(luoluo.__private_money)
# print(luoluo._StudentV2__private_money) # 改变了方式
luoluo.get_counts()

"""
类属性和实例属性

类方法、实例方法

# 私有属性、私有行为
_XXX 私有的。类和子类的对象可以访问,提供api给你访问。

__XXX 私有的。类的对象可以访问。
"""

python学习-class封装的更多相关文章

  1. 4月16日 python学习总结 封装之property、多态 、classmethod和staticmethod

    一.封装之property @property把一个函数伪装成一个数据类型  @伪装成数据的函数名.setter   控制该数据的修改,修改该数据时触发 @伪装成数据的函数名.delect  控制该数 ...

  2. Python学习day25-面向对象之组合,多态和封装

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  3. Python学习(七)面向对象 ——封装

    Python 类的封装 承接上一节,学了Student类的定义及实例化,每个实例都拥有各自的name和score.现在若需要打印一个学生的成绩,可定义函数 print_score() 该函数为类外的函 ...

  4. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

  5. 180分钟的python学习之旅

    最近在很多地方都可以看到Python的身影,尤其在人工智能等科学领域,其丰富的科学计算等方面类库无比强大.很多身边的哥们也提到Python非常的简洁方便,比如用Django搭建一个见得网站只需要半天时 ...

  6. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  7. [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …

    [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...

  8. 《Python学习手册》读书笔记

    之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...

  9. VS2013中Python学习环境搭建

    VS2013中Python学习笔记[环境搭建] 前言 Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的设计具有很强的可读性,相比其他语言经常使用英文关键字, ...

随机推荐

  1. 领扣(LeetCode)转置矩阵 个人题解

    给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引. 示例 1: 输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7] ...

  2. ASP使用ajax来传递中文参数的编码处理

    背景 asp的第一版是0.9测试版,自从1996年ASP1.0诞生,迄今20余载.虽然asp在Windows2000 IIS服务5.0所附带的ASP 3.0发布后好像再没有更新过了,但是由于其入手简单 ...

  3. 学会这8个优秀 Python 库用于业余项目,将大大减少程序员耗费的精力

    在数据库中即时保存数据:Dataset 当我们想要在不知道最终数据库表长什么样的情况下,快速收集数据并保存到数据库中的时候,Dataset 库将是我们的最佳选择.Dataset 库有一个简单但功能强大 ...

  4. 运维与开发的开车现场之MySQL5.7创建触发器报错解决过程

    报错内容如下: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds ...

  5. 设置属性节点(setAttribute())

    setAttribute():方法将为给定元素节点添加一个新的属性值或是改变它的现有属性值: element.setAttribute(attriibuteName,attributeValue); ...

  6. [ch04-02] 用梯度下降法解决线性回归问题

    系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 4.2 梯度下降法 有了上一节的最小二乘法做基准,我们这 ...

  7. CentOS 7 Cobbler 安装

    Cobbler介绍 Cobbler是一个Linux服务器快速网络安装的服务,而且在经过调整也可以支持网络安装windows. 使用python开发,小巧轻便(才15k行python代码),可以通过网络 ...

  8. DNS服务反向解析实验

    DNS域名解析服务是用于解析域名与ip地址对应关系的服务,功能上可以实现正向解析和反向解析 正向解析:根据主机名(域名)查找对应的IP地址. 反向解析:根据IP地址查找对应的主机名(域名). 下面我来 ...

  9. VMware中windows虚拟机的安装流程

    1.打开安装的VMware 15,点击新建虚拟机 2.选择典型即可,点击下一步          3.选择“稍后安装操作系统”,点击下一步        4.选择想安的版本,点击下一步         ...

  10. linux进程间通信之共享内存学习记录

    进程 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed). 广义定义:进程是一个具有一定独立功能的 ...