在python中创建类时,self的作用

在深度学习中,有时候创建模型总是要先创建一个class(类),而在初始化类的时候__init__的第一个参数是self,那么这个self有什么作用呢?

对于一个类来说,在创建实例的时候,如果需要添加比较多的参数,那么self的作用就展现出来了,例如,在构建一个生成模型时,在定义init方法的时候,可以将输入噪声的维度、卷积维度以及输出的size等属性添加进去,如下所示:

class Generator(nn.Module):

        def __init__(self, noise_dim=100, cov_dim=32, output_size=64):

                super(Generator, self).__init__()

请注意,在创建init方法的时候,其第一个参数一定是self,这表明init创建的是实例本身,后面我们自己创建的属性是可以通过self来调用的。

但是当你自己添加了参数时,在进行实例化的时候,就不能传入空参数了,需要和你自己定义的相匹配,自己定义了多少参数,就在实例化时传入多少参数,但是self不需要传入,因为python解释器会自己把实例参数添加进去。实例化如下所示,和上面的是相对应的。

G = generator(noise_dim = 100, g_img_size=64)

其实,在类中定义方法,除了第一个参数是self之外,和平常定义一个普通方法没什么太大区别。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值