0
点赞
收藏
分享

微信扫一扫

python的类,实例,以及实例化

Jonescy 2022-03-21 阅读 71
python

在看代码的时候,发现一些特别的写法class,self。

class cat():
    def __init__(self, color, weight):
        self.color = color
        self.weight = weight

其实它本质就是一个函数。一般函数可以实现简单功能复用,但是【类】可以实现复杂的代码复用。

举个例子,动物是一个类,小猫是一个实例。也就是说类包含无数的实例。再如,PPT模板是类,修改PPT模板中的数据和文字得到新的PPT,就是一个实例,修改的过程是实例化。

1.类由【属性】和【方法】组成。如猫是一个类,属性(特征)是:毛色、体重;方法(能干什么)是抓老鼠。

代码实现就是函数,一个函数经过固定格式的包装后就是类的方法。

2.类的定义和实例化有固定的格式要求。self也是必须的。

3.所有的类都有一个_init_(self)初始化方法,用来定义类有哪些属性,也可以在实例化类时执行某些方法。注意:类的方法函数的第一个参数必须是self,且不可改变(python底层代码注定的)。

如:

# 定义一个类——cat
class cat(): #属性定义
    def __init__(self, color, weight):
        self.color = color
        self.weight = weight

    def catch_mice(self): #方法定义
        """抓老鼠的方法"""
        print('抓老鼠')

    def eat_mice(self): #方法定义
        """吃老鼠"""
        print('吃老鼠')


# 类的实例化——已经变成了my_cat
my_cat = cat('yellow', 10)

# 调用类的方法
my_cat.catch_mice()
# 输出 抓老鼠

my_cat.eat_mice()
# 输出 吃老鼠

# 查看类的属性
print(my_cat.color)
# 输出 yellow

print(my_cat.weight)
# 输出 10

再如:定义了三个类,Sol()、Node()、Model()以及它们各自的属性

class Sol():
    def __init__(self):
        self.node_id_list=None
        self.obj=None
        self.fit=None
        self.routes=None

class Node():
    def __init__(self):
        self.id=0
        self.x_coord=0
        self.y_coord=0
        self.demand=0
        self.depot_capacity=15

class Model():
    def __init__(self):
        self.best_sol=None
        self.demand_dict = {}
        self.depot_dict = {}
        self.demand_id_list = []
        self.opt_type=0
        self.vehicle_cap=0
        self.distance_matrix={}
        self.popsize=100
        self.alpha=2
        self.beta=3
        self.Q=100
        self.tau0=10
        self.rho=0.5
        self.tau={}
举报

相关推荐

0 条评论