四时宝库

程序员的知识宝库

Python的类与对象(python类和对象详解)

面向过程编程:

看中的是解决问题的过程,首先分析出解决问题的步骤,然后按照分析出来的步骤进行解决问题,这就是面向过程编程。面向过程编程主要使用到函数知识,将每个步骤的过程封装在一个函数里再依次调用。

什么样的代码才是面向对象?

从简单来说,如果程序中的所有功能都是用 类 和 对象 来实现,那么就是面向对象编程了。

类的定义和实例化

python定义简单类如下。

class Car(object):

pass

c1=Car()

我们定义了一个Car类,其中什么方法也没有实现。c1是我们实例化的类Car,成为对象。

类属性

每次我们想使用描述符的时候都不得不定义描述符类,这样看起来非常繁琐。Python特性提供了一种简洁的方式用来向属性增加数据描述符。一个属性签名如下所示:

Python

property(fget=None, fset=None, fdel=None, doc=None) -> property attribute

1

property(fget=None, fset=None, fdel=None, doc=None) -> property attribute

fget、fset和fdel分别是类的getter、setter和deleter方法。我们通过下面的一个示例来说明如何创建属性:

Python

class Accout(object):

def __init__(self):

self._acct_num = None

def get_acct_num(self):

return self._acct_num

def set_acct_num(self, value):

self._acct_num = value

def del_acct_num(self):

del self._acct_num

acct_num = property(get_acct_num, set_acct_num, del_acct_num, "Account number property.")

class Accout(object):

def __init__(self):

self._acct_num = None

def get_acct_num(self):

return self._acct_num

def set_acct_num(self, value):

self._acct_num = value

def del_acct_num(self):

del self._acct_num

acct_num = property(get_acct_num, set_acct_num, del_acct_num, "Account number property.")

如果acct是Account的一个实例,acct.acct_num将会调用getter,acct.acct_num = value将调用setter,del acct_num.acct_num将调用deleter。

“我们相信人人都可以成为一个IT大神,现在开始,选择一条阳光大道,助你入门,学习的路上不再迷茫。这里是北京尚学堂,初学者转行到IT行业的聚集地。"

如果有什么问题也可以关注IT百战程序员(baizhanchengxuyuan)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接