理解python中的对象、类、实例、实例化之间的关系

366 阅读2分钟

1.什么是对象?

首先我们理解什么是对象,所谓万物皆对象,那我们可以这样里理解。 在代码中声明的变量、函数其实都是对象。
举例🌰:
以字符串类型的变量为例,见下方代码:

#!/usr/bin/python3  
  
str = "this is string Example From Runoob....wow!!!"  
  
print ("str.capitalize() : "str.capitalize())# capitalize 将字符串的第一个字母变成大写,其他字母变小写

输出

str.capitalize() :  This is string example from runoob....wow!!!

str这个变量可见,当它声明赋值后,str便拥有了字符串的属性和方法,所以它必然是个对象,对象都有自己的属性与方法。

那么接下来抛出我们的第二个问题:那为什么字符串直接声明便是对象,而我们自己想定义一个对象却不行?比如定义一个小狗对象。
原因是:字符串这个对象的类已经在python这套语言里,按照它的规则赋值就行,但是我们自己想要实现一个对象,就必须先声明他的类

2.什么是实例?

首先我们知道是抽象的,是对一件具体事物的描述,
比如你有一只小猫,对别人介绍的时候会去描述出它的毛色、性格等等,
但是它具体真的是这样吗?需要我具体看到摸到才知道,真实存在的这个 小猫 便是你所描述 猫 的实例
那实例跟对象又有什么关系?
看代码:

#!/usr/bin/python3 
class MyCat:
    """一个简单的类实例""" 
    i = 12345 
    def f(self): 
        return 'hello world' 
        
# 实例化类 
cat = MyCat() 

# 访问类的属性和方法 
print("MyCat 类的属性 i 为:", cat.i) 
print("MyCat 类的方法 f 输出为:", cat.f())

代码中声明了Mycat这个类,它是对我的猫的一些描述,下面cat这个对象便是Mycat的实例,而他们之间赋值的这个过程称之为实例化

3.为什么不直接把对象叫做实例

实例是对象与类之间的一种关系,当我们拥有多个类与对象的时间,能更好的理解,看代码:

#!/usr/bin/python3 
class A:
    """这是A类""" 
    
class B:
    """这是B类"""   
    
# 实例化A类 
a = A() 

# 实例化B类 
b = B() 

上述代码中我们分别声明了大A大B这个两个类和小a小b这两个对象,
会说小a这个对象是大A类的是实例小b这个对象是大B类的是实例,小b这个对象和大A类没任何关系不能称之为实例。