美文网首页
关于python中的面向对象(二)

关于python中的面向对象(二)

作者: 梅花九弄丶 | 来源:发表于2017-08-03 17:40 被阅读0次

python中的面向对象之封装:
封装:指的是对全局作用域中其他区域隐藏多余信息的原则。在一些语言中,这意味着对象的状态(特性)只对自己的方法可用,在python中,所有特性都是公开可用的。
如:# 定义了一个商品类型,封装和商品有关系的数据

def __init__(self, name, price, stock):
[self.name*
"); background-size: cover; background-position: 0px 2px;">*](http://link.zhihu.com/?target=http%3A//self.name) = name
self.price = price
self.stock = stock

封装具体的数据到对象中:对象是通过类型来封装具体的数据的

g1 = Goods(“连衣裙”, 199, 120)
将对象敏感的数据,封装在类的内部,不让外界直接访问;而是通过定义的set/get方法来间接访问内部的数据的过程,此时,就可以在set/get方法中,添加条件限制代码!

属性私有化,才能让外界不能直接访问

在python2和python3中,约定了以一个下划线开头的变量,是私有变量,外界不要直接使用

python3中,要求两个下划线开头的属性,表示当前类的私有属性,外界不能访问

如:

def __init__(self, name, age):
self.__name = name
self.__age = age

def set_name(self, name):
self.__name = name
def get_name(self):
return self.__name

def set_age(self, age):
if age >=0 and age <= 100:
self.__age = age
else:
print("设置的年龄不合法...")
def get_age(self):
return self.__age

def __str__(self):
return "姓名:%s;年龄:%s" % (self.__name, self.__age)

p = Person("tom", 12)
print(p)
p.set_age(1200)
print(p) 

封装实现的步骤
1.完成一个类的定义
2.所有属性私有化
3.给每个属性提供set/get方法

不带下划线的属性:直接访问(读取/修改),推门而入
带一个下划线的属性:约定(项目规范)是假私有属性,不让直接访问;君子约定:进门前敲门。
带两个下划线的属性:私有属性。反锁门,进门前必须敲门!

将方法的实现隐藏起来,提高代码的安全性

def __init__(self, name):
self.__name = name


@property #给获取值的方法,添加@property------------------------------------------------>注解
def get_name(self):
return self.__name

@get_name.setter------------------------------>注解
def set_name(self, name):
self.__name = name

c = Computer("Alienware")
print(c.get_name)
c.set_name = "HP"
print(c.get_name)

封装的注解方式,在一定程度上,能隐藏我们方法在底层的实现,让调用者的操作变得简单。但是同时也降低了代码的可读性,后续的操作中,我们还是遵循原来封装的操作方案将类的属性私有化,提供set/get方法进行属性的操作。

相关文章

  • 关于python中的面向对象(二)

    python中的面向对象之封装:封装:指的是对全局作用域中其他区域隐藏多余信息的原则。在一些语言中,这意味着对象的...

  • 2019-10-23

    python面向对象编程总结 python中的对象:在其...

  • 营销比赛二三事

    Python面向对象编程三大特性调研 Python面向对象之封装 在Python中,没有类似 private 之类...

  • python中"面向对象"来啦........

    python是一种面向对象的语言。 Python中通过使用类(class)和对象(object)来实现面向对象 面...

  • 第7天,面向对象

    @(python)[笔记] 目录 前言 在python中,一切皆对象面向对象的程序设计的核心就是对象;面向对象的程...

  • python面向对象学习笔记-01

    学习笔记 # 0,OOP-Python面向对象 - Python的面向对象 - 面向对象编程 - 基础 -...

  • Python中面向对象的第二大特征——继承

    Python中面向对象有三大特征:封装,继承,多态 今天就说说面向对象中的第二大特征——继承 一丶什么是继承 ...

  • 关于python中面向对象(一)

    什么是面向对象? 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对...

  • Python 面向对象编程

    Python 面向对象编程(一) Python 面向对象编程(一) 虽然Python是解释性语言,但是它是面向对象...

  • Python学习笔记

    更多关于类的内容看这里:一篇文章搞懂Python中的面向对象编程

网友评论

      本文标题:关于python中的面向对象(二)

      本文链接:https://www.haomeiwen.com/subject/rfnplxtx.html