最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python之初识类与对象

    正文概述    2020-03-16   223

    Python之初识类与对象

    类的概念与定义

    在生活中,我们走在路边,看到一辆车,大脑中首先想到的是“这是一辆车,然后才是这是一辆什么牌子的车”,在这里,我们就用到了编程中的类的概念。同样的,看到一条小狗,也会先想到这是一条狗,然后会想到这是一条什么品种的狗。在编程中,把同一类的事物叫做类,把这个类里所共有的特征总结归纳并定义出来,就是类的属性;把这个类能会做什么事,能做什么事总结归纳并定义出来就是类的技能。

    举个例子:

    我想定义一个人的类,在python里面要怎么实现呢?

    首先,我们会想到人都有什么共同的特征呢?人都有两只眼睛,都有两条腿,等等这些是每个人都有的自己的特征,

    其次,每个人还都拥有自己的独有特征,每个人的姓名都不是一样的,每个人还都有自己的年龄,自己的性别,自己的学历等等这些是每个人的独有特征。

    最后,人都有的技能还包括吃饭,睡觉,行走,学习等,这些是人都具有的技能。

    那个现在我们这可以定义人的类,具体实现代码如下:

    class Person:
        """class是定义类的关键字,class后面的P erson是类的名字,python解释器会把class这个关键字后面的名称设定为类的名字,
        类的名字默认首字母大写。"""
        #定义每个人都有两个眼睛
        eye=2
        #定义每个人都有两条腿
        leg=2
        def __init__(self,name,age,sex,education):
            """定义每个人的独有的特征,此处定义每个人都有自己的姓名,年龄,性别和学历"""
            self.name=name
            self.age=age
            self.sex=sex
            self.education=education
        def eat(self):
            #定义人都有的吃饭的技能
            print("%s is eating food"%self.name)
            
        def walk(self):
            #定义人都有的行走的技能
            print("%s is walking slow"%self.name)
            
        def study(self):
            #定义人都有的学习的技能
            print("%s is studying hard"%self.name)

    执行上面的代码,python解释器会在内存中开辟出一块内存空间,用来保存类中定义的人类的特征和技能。

    在上面的代码里,定义人类共有的特征时,相当于在人这个类的名称空间中定义了两个变量,定义人独有的特征时,相当于是在人类的名称空间里,声明了一个名叫“初始化”的函数,在函数中存放代表了每个人独有的特征的变量。

    而接下来的三个函数则用来表示每个人都会做的动作,python解释器同样会为这三个函数在存放人类的名称空间的内存中开辟三块区域用来存放这三个函数(也可以称之为人类共有的技能。

    相关推荐:《Python视频教程》

    对象的概念与定义

    在编程的世界里,定义出一个类之后,我们就可以用这个类生成一个个的人,这个过程我们也称之为类的实例化,生成之后的人我们则称之为对象。

    现在我想用上面的程序实例化出两个人,要怎样实现呢??

    person1=Person("jack",22,"male","college")
    person2=Person("lily",18,"female","middle school")

    这样我们就实例化出两个人:

    第一个人名字叫jack,22岁,性别为男,大学学历,

    第二个个名字叫lily,18岁,性别为女,中学学历。

    对象的使用

    现在我们已经创建出了两个人,现在可以调用这两个人的特征和技能了

    比如,我想知道person1的特征,可以使用如下方法:

    print(person1.name)         #查看person1的名字,输出为:jack
    print(person1.age)          #查看person1的年龄,输出为:22
    print(person1.sex)          #查看person1的性别,输出为:male
    print(person1.education)    #查看person1的学历,输出为:college

    查看person1的技能时:

    person1.walk()      #调用person1的行走的技能
        会打印:jack is walking slow
    person1.eat()       #调用person1的吃饭的技能
        会打印:jack is eating food
    person1.study()     #调用person1的学习的技能
        会打印:jack is studying hard

    查看person2的特征和技能时使用同样的方法

    类与对象的对比分析

    print(Person.eat,person1.eat,person2.eat)

    执行结果如下:

    <function Person.eat at 0x0000000002951BF8>
    <bound method Person.eat of <__main__.Person object at 0x000000000295D240>
    <bound method Person.eat of <__main__.Person object at 0x000000000295D278>>

    分别调用类的吃饭的方法,以及person1和person2的吃饭的方法,可以看到它们的内存地址都不一样,同样的,调用他们的其他的走路和学习的方法,它们各自的内存空间也都不一样,这充分说明了它们在内存中是各自开辟了一段自己的独有的内存空间。


    下载网 » Python之初识类与对象

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元