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类没任何关系不能称之为实例。