编程语言应用

首页 » 常识 » 常识 » python学习之面向对象编程一
TUhjnbcbe - 2025/2/15 10:22:00

在python中,可以把所有数据类型都看做是对象,这个和javascript有些类似,一切都是对象~!,面向对象编程就是把一切要处理的事物都抽象成对象,这个对象包含了数据和操作数据的方法(函数)。同样的,python中的面向对象编程也具有封装、继承、多态这三个特点!

如何创建一个类和实例对象?

定义类使用class关键字,这个好像其他语言也是如此。

classCat(object):

def__init__(self,name):

self.name=name;

defmycatname():

print(mycatsnameis,self.name);

上面定义了一个叫cat的类,object是继承系统类,类里面有一个特殊的__init()__函数,类似于构造函数,初始化操作的,第一个参数永远是self,self指向的是实例本身,实例的时候不用传入,第二个参数是名字,传入的参数,第二个函数是输出cat的名字。下面我们执行实例化操作:

cat=Cat(huihui);

cat.name

huihui

cat.mycatname();

huihui

我们实例化了一个cat对象,cat对象可以直接调用实例的属性name,也可以调用类中的函数。

私有变量属性!

当我们定义的属性想要变为私有的时候,不想被外部调用,把数据封装起来,我们该怎么使用呢?使用方式就是在变量的前面加两个下划线。

classCat(object):

def__init__(self,name):

self.__name=name;

我们在name上加了两个下划线,这样name就变成私有变量了,外部是无法直接调用的。如果外部直接调用就会报错

cat=Cat(huihui);

cat.__name

Traceback(mostrecentcalllast):

Filestdin,line1,inmodule

AttributeError:Catobjecthasnoattribute__name

类如何继承和实现多态?

我们如何去继承一个类和重写父类的方法呢?

先定义一个父类

classParent(object):

defwoiam():

print(iamfather);

再定义一个继承它的子类

classChild(Parent):

defwoiam():

print(iamson);

在定义类名的时候首字母大写,再说一遍,python是区分大小写的语言,上面定义了一个Child类,这个类继承了Parent了,首先拥有了Parent类所有的属性和方法,其次还重写覆盖了woiam的方法。

实例的属性和类的属性是不同的!

实例的属性和类的属性是不同的,实例的属性属于每个实例本身,实例可以有无数个,类就像是模具,实例是用类制作出来的很多实物,实例的属性是互不干扰的,因为它们属于每个实例的个体,而类的属性是属于模具的,模具的属性变了,所有制造出来的实例带有的属性都变了。

至于这两个属性具体怎么个不同法,咱们下回分解!谢谢阅读!

1
查看完整版本: python学习之面向对象编程一