属性property

属性property封装,类本身就是一个封装,封装了属性和方法。这样简化开发,符合逻辑习惯,利于扩展。在python中因为是弱类型语言,对类型没有限定,所有pyth

大家好,欢迎来到IT知识分享网。

属性property

1.1 属性property

面试题:

1、 你对面向对象的理解

2、 面向对象的特征是什么

3、 对封装的理解?

封装,类本身就是一个封装,封装了属性和方法。方法也是封装,对一些业务逻辑的封装。私有也是封装,将一些方法和属性私有化,对外提供可访问的接口。

4、 对继承的理解

将共性的内容放在父类中,子类只需要关注自己特有的内容,共性的继承过来就行了。

这样简化开发,符合逻辑习惯,利于扩展。

5、 多态的理解

多态,一个对象在不同的情况下显示不同的形态。在python中因为是弱类型语言,对类型没有限定,所有python中不完全支持多态,但是多态的思想呢,python也是能体现的。

1.1.1 私有属性添加getter和setter方法

classMoney(object):

def__init__(self):

self.__money = 0

defgetMoney(self):

return self.__money

defsetMoney(self, value):

if isinstance(value, int):

self.__money = value

else:

print(“error:不是整型数字”)

1.1.2 使用property升级getter和setter方法

classMoney(object):

def__init__(self):

self.__money = 0

defgetMoney(self):

return self.__money

defsetMoney(self, value):

if isinstance(value, int):

self.__money = value

else:

print(“error:不是整型数字”)

money = property(getMoney, setMoney)

运行结果:

In [1]: from get_set import Money

In [2]:

In [2]: a = Money()

In [3]:

In [3]: a.money

Out[3]: 0

In [4]: a.money = 100

In [5]: a.money

Out[5]: 100

In [6]: a.getMoney()

Out[6]: 100

1.1.3 使用property取代getter和setter方法

@property成为属性函数,可以对属性赋值时做必要的检查,并保证代码的清晰短小,主要有2个作用

· 将方法转换为只读

· 重新实现一个属性的设置和读取方法,可做边界判定

classMoney(object):

def__init__(self):

self.__money = 0

@property

defmoney(self):

return self.__money

@money.setter

defmoney(self, value):

if isinstance(value, int):

self.__money = value

else:

print(“error:不是整型数字”)

运行结果

In [3]: a = Money()

In [4]:

In [4]:

In [4]: a.money

Out[4]: 0

In [5]: a.money = 100

In [6]: a.money

Out[6]: 100

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/76464.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信