python之面向对象之封装

今天我们终于进入了面向对象,今天做一下面向的封装的总结

#面向对象的封装
#这里定义了一个类,名称为Role,object是所有类的父类
class Role(object):
    #这里是定义实例的属性,这个实例的属性分别有name,role,wepon,life_value,如果我们通过类Role去创建一个实例的时候,就必须传递这几个参数
    #需要说的时候,这里的属性是实例的属性,而不是类的属性,具体关于类的属性,我们在后面介绍
    def __init__(self,name,role,wepon,life_value):
        self.name = name
        # name = name
        self.role = role
        self.wepon = wepon
        self.life_value = life_value
    #这里定义一个函数,这个函数是类的函数,我们通过这个类创建的任何一个实例都可以调用这个函数,这里的self就是调用这个函数实例,gun是调用这个函数
    #我们需要传递的一个参数,因为我们是通过实例来调用类的方法,所以这里的self参数python默认就帮我们处理了
    def buy_gun(self,gun):
        print("名称为[%s]的人买了[%s],我的角色是[%s]" %(self.name,gun,self.role))
        #改变实例中的变量的值
        self.wepon = gun

#通过类Role来生成两个实例
p1 = Role("p1","Police","B10","10")
t1 = Role("t1","Terror","B11","100")

#创建出来的实例就可以调用它的类Role的方法bug_wepon
p1.buy_gun("C10")
print(p1.name)
print(p1.role)
print(p1.life_value)
print(p1.wepon)
# 名称为[p1]的人买了[C10],我的角色是[Police]# p1# Police# 10# C10

t1.buy_gun("C11")
print(t1.name)
print(t1.role)
print(t1.life_value)
print(t1.wepon)
# 名称为[t1]的人买了[C11],我的角色是[Terror]# t1# Terror# 100# C11
#self就是实例本身,也就是我们上

  

时间: 2024-10-02 16:13:51

python之面向对象之封装的相关文章

python基础--面向对象之封装

# 在python中用双下划线,开头的方式将属性隐藏起来(设置成私有的) # 但其实这只是一种变形操作,而且仅仅在类定义阶段会发生变形 # 类中所有双下划线开头的如__x都会在类定义的时候自动形成:_类名__x的形式. class A: __N = 0 # 类的属性就应该是共享的,但是语法上是可以把类的数据属性设置成私有的如__N 会变成_A__N def __init__(self): self.__X = 10# self._A__X def __foo(self): # _A__foo p

Python面向对象编程-封装

1引言 你点击了桌面上的Chrome图标,一个浏览器窗口出现了,输入网址就可以在Internet世界愉快玩耍.这一切是怎么实现的呢?Chromium这个多进程的程序是如何启动各个进程的呢?浏览器主进程(界面进程)启动了哪些线程?如何启动的呢?这些问题一直萦绕在心头,一起来看看源代码吧.本文主要针对Chromium for Mac的源代码,其它操作系统大同小异. 2背景知识 浏览器作为一个应用程序,是以进程的形式运行在操作系统上的.首先,Chromium是一个多进程的应用程序,我们需要了解Chro

python开发面向对象基础:封装

一,封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 1. 将变化隔离: 2. 便于使用: 3. 提高复用性: 4. 提高安全性: [封装原则] 1. 将不需要对外提供的内容都隐藏起来: 2. 把属性都隐藏,提供公共方法对其访问. 私有变量和私有方法 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) 私有变量 #其实这仅仅这是一种变形操作 #类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式: class A: __N=0 #类的数

Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理)

Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理) 一丶封装 , 多态 封装: ? ? ? ? ? ?将一些东西封装到一个地方,你还可以取出来 ? ? ? ? ? ?类设置静态属性, 设置一些方法 或者 对象, 对象可以在其对象封装一些属性 多态: ? ? ? ? ? ?python默认支持多态, 多态指的是一种事务具有多种形态 ? ? ? ? ? ?1.多态可以增加代码的灵活度: ? ? ? ? ? ?2.以继承和重写父类方法为前提: ?

python-day7 python内置模块 面向对象

1.configparser模块 configparser用于处理特定格式的文件,其本质上是利用open来操作文件 # 注释1 ; 注释2 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [section2] # 节点 k1 = v1 # 值 指定格式 1.2.获取所有节点 import configparser config = configparser.ConfigParser() config.read('xxxooo', encoding='utf-8') r

Python之面向对象(初级篇)

面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." 面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接

面向对象之 封装 继承 多态

#!/usr/bin/env python # _*_ coding:utf-8 _*_ class Role(object): #继承object类 ac = None #脚本一执行跟着类一起存到了内存 类变量 #类变量和实例变量的区别: #类变量脚本执行跟着类一起存到了内存,不管是否调用都存在,实例变量是存在实例内的, def __init__(self,name,role,weapon): #初始化方法 实例化后自动执行 #self 代表实例本身.谁调用就是谁. name role,wea

反射,面向对象(封装,继承,多态)知识整理

一.反射 定义:根据字符串形式去对象中操作成员 getattr :根据字符串的形式去模块中寻找东西 hasattr:根据字符串的形式判断模块中每个东西是否存在,有就返回Ture,没有就返回False setattr:主要是起设置作用(具有创建的全局变量或者函数的作用) delattr:删除模块中的某个东西 扩展:(以字符串的形式导入模块):注释:这个不属于反射的内容 _import_(“导入模块的名字”) 二.面向对象 1.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到

what's the python之面向对象

编程分为面向过程和面向对象,首先我们要了解什么是面向对象. 面向对象 面向过程就是我们之前学的内容,主要是函数式,其核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的