首先了解什么是对象?
对象=属性+方法(函数)
举个例子:
class Bird():
color = 'black'#特征的描述称为属性,其实就是变量
def fly(self): #方法实际就是函数
print("Flying")
以上定义了属性和方法,将定义的这些称为类(class)。我们需要使用类来创建真正的对象,这个对象就称为类的一个实例(instance),也叫实例对象(instance objects)。简单的说比如我们建一个个人博客,需要一台云主机,有了云主机才能搭建一个博客系统,这个云主机就是类。
a = Bird() #a就是实例对象
什么是魔法方法?
魔法方法左右总是被两个下划线包围,例如__init__()。
魔法方法是类在实例化成对象的时候首先会调用的一个方法。
举个例子:
#example.py
class Example:
def __init__(self):
print ("__init__ method")
运行example.py,输出结果:
================= RESTART: F:\Software\Python3.9\py\example.py =================
>>> a = Example() #实例化对象的时候,直接调用了__init__()方法,运行了print语句。
__init__ method
>>>
再举个例子:
#rectangle.py
class Rectangle:
"""
定义一下矩形类
需要长和宽两个参数
分别定义计算周长和面积的方法
(实际就是函数)
我们需要对象在初始化的时候就拥有长和宽两个参数
因此需要重写__init__()方法
"""
def __init__(self,x,y):
self.x = x
self.y = y
def getPeri(self):
return (self.x + self.y) * 2
def getArea(self):
return (self.x * self.y)
运行rectangle.py
================= RESTART: F:\Software\Python3.9\py\rectangle.py =================
#错误方法:
>>> a = Rectangle()
#由于实例化成对象的时候会调用__init__()方法,而__init__()方法需要传入x,y两个参数,所以程序抛出Error。
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
a = Rectangle()
TypeError: __init__() missing 2 required positional arguments: 'x' and 'y'
>>>
#正确方法:
>>> a = Rectangle(5,6) #实例化一个对象
>>> a.getPeri() #对象的方法调用
22
>>> a.getArea()
30
>>>
__init__()方法的返回值一定是None,只有在需要初始化的时候才重写。
>>> class Test:
def __init__(self):
return "abc"
>>> a = Test()
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
a = Test()
TypeError: __init__() should return None, not 'str'
「 文章如果对你有帮助,请点个赞哦^^ 」 
4+
若无特殊注明,文章均为本站原创或整理发布。
转载请注明本文地址:https://om.fangxiaoxiong.com/4122.html