栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python面向对象一

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python面向对象一

类是一种数据类型,而对象是具有这种数据类型的变量。类是抽象的,不占有内存空间。而对象是具体的,占有储层空间。

python中,通过class关键字定义类。
形式:

class className:
 类体

类体定义类的成员,有二种类型成员。一是数据成员,它描述问题的属性。二是成员函数,它描述问题的行为。

类是抽象的,要使用类定义的功能必须将类实例化,即创建对象。 对象名=类名(参数列表)

class Person:
    name=' '
    age=0
    def  display(self):
 print('name={0},age={1}'.format(self.name,self.age))

p=Person()
p.name='tom'
p.age=22
p.display()

结果

name=tom,age=22

面向对象,具有继承,抽象,封装等特点
python中,定义的方法至少含一个参数,一般默认self(相当于,其它语言的this吧),需要作为第一个参数。

类属性就是类对象拥有的属性,它被类对象共有,在内存中只有一个副本

class Person:
    name=' '  #共有类属性
    __age=0  #私有类属性
    def setAge(self,a):
 self.__age=a
    def  display(self):
 print('name={0},age={1}'.format(self.name,self.__age))

p=Person()
#p.name='tom' 可以,但是不提倡
Person.name='tom'
p.setAge(22)
p.display()

类属性,属于类,既可以通过类访问,也可以通过对象访问,但是不建议通过对象访问。

实例属性, 不需要再类中显示定义,而在init中构造函数中定义,定义时以self为前缀。在其它方法也可以随意添加实例对象对象,建议不这么做,最好在init中给出。

实例属性属于实例对象,只能通过对象访问。

class Animal:
    def __init__(self,n,c):
 self.name=n #定义实例属性
 self.color=c
    def display(self):
 print('name={0},color={1}'.format(self.name,self.color))

an=Animal('dog','black')
an.display()
name=dog,color=black

类的方法
类中的内置方法, 在python中有一些内置方法,这些方法名都有特殊的约定,以2个下划线开始,2个下划线结束, 类中最常用的就是构造方法和析构方法。

构造方法 init(self,***) 在生成对象的时候调用,可以进行一些属性初始化操作,不需要显示调用,系统会默认执行。构造方法支持重载,如果用户没有定义新的构造方法,系统会自动执行默认的构造方法。

析构方法 del(self)在释放对象的时候调用,支持重载,不需要显示调用。

class Animal:
    def __init__(self,n,c):
 self.name=n #定义实例属性
 self.color=c
 print("执行了构造函数")

    def __del__(self):
 print("执行了析构函数")
    def display(self):
 print('name={0},color={1}'.format(self.name,self.color))

an=Animal('dog','black')
an.display()
del an

结果是:

执行了构造函数
name=dog,color=black
执行了析构函数

分2部分吧。。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/224470.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号