# 封装 类=属性+行为 抽像 -
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. SpringBoot让你的Bean动起来(自定义参数解析HandlerMethodArgumentResolver)

    SpringBoot让你的Bean动起来(自定义参数解析HandlerMethodArgumentResolver) 简介 我们 Controller 用到的一些 Bean 需要通过一定的方式去获取的 ...

  2. 自制反汇编逆向分析工具 与hopper逆向输出对比

    经过一个阶段5次迭代之后,本逆向分析工具功能基本成形.工具的基本功能介绍请参看前面的posts. 现在就和hopper的逆向函数伪代码的功能对比一下效果.在这里并非定胜劣,因为差异可以拿来对比参照,通 ...

  3. 结合源码,重温 Android View 的事件处理知多少 ?

    前言 Android View 的 事件处理在我们的编程中,可谓是无处不在了.但对于大多数人而言,一直都是简单的使用,对其原理缺乏深入地认识. 学 Android 有一段时间了,最近发现,很多基础知识 ...

  4. java多线程,多线程加锁以及Condition类的使用

    看了网上非常多的运行代码,很多都是重复的再说一件事,可能对于java老鸟来说,理解java的多线程是非常容易的事情,但是对于我这样的菜鸟来说,这个实在有点难,可能是我太菜了,网上重复的陈述对于我理解这 ...

  5. python进程与线程的操作

    进程操作: # project :Python_Script # -*- coding = UTF-8 -*- # Autohr :XingHeYang # File :processTest.py ...

  6. 在Raspberry Pi上创建容器

    树莓派Raspbian默认是支持LXC容器的,下面我们介绍一下在树莓派上创建并运行容器的过程. 1. 安装LXC相关的package $ sudo apt-get install -y git lxc ...

  7. Few-shot Object Detection via Feature Reweighting (ICCV2019)

    论文:https://arxiv.org/abs/1812.01866 代码:https://github.com/bingykang/Fewshot_Detection 1.研究背景 深度卷积神经网 ...

  8. C#学习笔记02--Bool,关系/逻辑运算符, if/switch语句

    一. Bool类型   逻辑判断, C#中只有true和false两个值; 使用场景: 在分支和循环语句中, 常用作为判断条件来使用;   二. 关系运算符   关系运算符 (> < &g ...

  9. yum运行报错:/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: CRYPTO_num_locks

    是因为yum动态库使用了新安装libcurl库导致的.使用ldd查看动态库依赖关系: ldd /usr/lib64/python2.7/site-packages/pycurl.so 删除动态库配置中 ...

  10. 天了噜,为什么外链css要放在头部,js要放在尾部?

    我们最开始学前端的时候都会看到教程在处理外部css,js的时候会将css放在header中,js放在body的最后.为什么要这样子处理,今天参考一些资料好好分析下. 为什么外链css为什么要放头部? ...