鱼C论坛

 找回密码
 立即注册
查看: 2803|回复: 2

[已解决]关于python类与对象的问题

[复制链接]
发表于 2016-6-25 04:46:33 | 显示全部楼层 |阅读模式
5鱼币
新人求问:都说python一切皆对象,类也是对象,类的概念我能理解,但是类对象应该如何去理解呢。类的实例化相当于在堆上面malloc一段内存空间,那类的对象是一个什么样的过程呢?
最佳答案
2016-6-25 04:46:34
类,简单来说就是一个函数的集合,在这个集合里面你定义了很多个函数;方法,其实就是你定义的这些函数。在下面的例子中Class Plus就是一个类,嵌套在这个类里面的两个函数就是所谓的方法,但是__init__只是用于初始化这个类,所以不算是方法。而get_result这个函数就是一个方法了。
举个例子:
Class Plus:
    def __init__(self, a,b)
        self.a = a
        self.b = b
    def get_result(self)
        return self.a + self.b
在上面这个例子中,self就是对象,这个对象里面有两个参数,一个是self.a,另一个是self.b,对象简单来说就是自身具有多个属性(也可以说是子变量)的变量而已。如果说对象是笼统的东西,那么实例就是具体的东西。对象只是一个模板,有一些属性,而实例就是把数据填到这个模板里面去。比如这里你再这样写:c1 = Plus(1,2),这里c1就是一个实例,你还可以加一句:c2 = Plus(2,3),那c2也是一个实例,但是他们拥有共同的属性和模板。下面的例子就是调用了类里面的方法:
result1 = c1.get_result()   >>> 3  输出结果为3
result2 = c2.get_result()   >>> 5  输出结果为5

最佳答案

查看完整内容

类,简单来说就是一个函数的集合,在这个集合里面你定义了很多个函数;方法,其实就是你定义的这些函数。在下面的例子中Class Plus就是一个类,嵌套在这个类里面的两个函数就是所谓的方法,但是__init__只是用于初始化这个类,所以不算是方法。而get_result这个函数就是一个方法了。 举个例子: Class Plus: def __init__(self, a,b) self.a = a self.b = b def get_result(self) return s ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-25 04:46:34 | 显示全部楼层    本楼为最佳答案   
类,简单来说就是一个函数的集合,在这个集合里面你定义了很多个函数;方法,其实就是你定义的这些函数。在下面的例子中Class Plus就是一个类,嵌套在这个类里面的两个函数就是所谓的方法,但是__init__只是用于初始化这个类,所以不算是方法。而get_result这个函数就是一个方法了。
举个例子:
Class Plus:
    def __init__(self, a,b)
        self.a = a
        self.b = b
    def get_result(self)
        return self.a + self.b
在上面这个例子中,self就是对象,这个对象里面有两个参数,一个是self.a,另一个是self.b,对象简单来说就是自身具有多个属性(也可以说是子变量)的变量而已。如果说对象是笼统的东西,那么实例就是具体的东西。对象只是一个模板,有一些属性,而实例就是把数据填到这个模板里面去。比如这里你再这样写:c1 = Plus(1,2),这里c1就是一个实例,你还可以加一句:c2 = Plus(2,3),那c2也是一个实例,但是他们拥有共同的属性和模板。下面的例子就是调用了类里面的方法:
result1 = c1.get_result()   >>> 3  输出结果为3
result2 = c2.get_result()   >>> 5  输出结果为5
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-7-17 16:48:41 | 显示全部楼层
建议你看看《pytthon 学习手册》第4版的30章和31章。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-21 11:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表