ggn871107 发表于 2020-12-23 15:47:45

__init__(self)的使用疑问

import random as r
class Big():
    def __init__(self):
      self.ww = r.randint(0,10)    # "ww"可以随意替换吗?按照init的使用方法,不是要加上一个ww参数吗?这里self.ww为什么不用再init定义ww?
      print("我的位置是:",self.ww)
      


import random as r
class Big():
    def __init__(self,ww):
      self.ww = r.randint(0,10) #
      print("我的位置是:",self.ww)
      

以上2种写法有什么区别?在init方法当中,self.ww是标准吗?还是说可以任意替换?

chipeyown 发表于 2020-12-23 16:11:30

两种写法,其实ww都是可以任意替换的。第二种写法中,第二种方法,赋值的ww和self.ww值不是一个数值。

ggn871107 发表于 2020-12-24 11:25:50

chipeyown 发表于 2020-12-23 16:11
两种写法,其实ww都是可以任意替换的。第二种写法中,第二种方法,赋值的ww和self.ww值不是一个数值。

self.xx是规定必须这样写,还是说可以只用一个字母或者一串字母代替   比如 改成r.randint(0,10),这样写会对程序造成其他什么影响吗?

xwzg123 发表于 2020-12-24 20:11:41

__init__(self,)相当于类的初始化,当你的初始化里面有参数时你在生成实例化对象的时候必须要带参数,如果你不加(默认不加),你实例化出来的对象不需要加参数。两种方法都是可以支持的,只是实例化对象一个带参数一个不带参数的区别。

ggn871107 发表于 2020-12-28 09:40:24

xwzg123 发表于 2020-12-24 20:11
__init__(self,)相当于类的初始化,当你的初始化里面有参数时你在生成实例化对象的时候必须要带参数,如果 ...

class Big():
    def __init__(self):
      self.ww = r.randint(0,10)   
      print("我的位置是:",self.ww)

比如这个函数当中,还没有实例化,那么self.ww是什么意思呢?相当于已经实例化了吗?

xwzg123 发表于 2021-1-3 20:42:05

ggn871107 发表于 2020-12-28 09:40
class Big():
    def __init__(self):
      self.ww = r.randint(0,10)   


可以把self.ww当做一个变量,但是你没有实例化时内存会分配一个16进制数(人为看不懂的数字)给他,只有你实例化了,才会产生随机数,实例化出来后才会直接打印出结果,self.ww仅仅作为变量而已。

洋洋痒 发表于 2021-1-5 18:26:35


import random as r
class Big():
    def __init__(self):
      self.ww = r.randint(0,10)

class Big():
    def __init__(self,ww):
      self.ww=ww

这样对比一下明白了没

°蓝鲤歌蓝 发表于 2021-1-6 20:44:34

第二种里 括号里的 ww 和 self.ww 都不是一个东西,有什么好比较的。
页: [1]
查看完整版本: __init__(self)的使用疑问