扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
以下是一个不接受参数的类的示例代码:
成都创新互联公司专业提供西部信息机房服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买西部信息机房服务,并享受7*24小时金牌售后服务。
class MyClass:
def __init__(self):
pass
这里定义了一个空的构造函数__init__(),没有接受任何参数。
如果你希望类能够接受参数,可以像下面这样定义构造函数:
class MyClass:
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
这里的构造函数__init__()接受两个参数,分别为arg1和arg2,并将它们保存到类的属性中。
这个不是不传,是re模块自己传的match对象。
这个函数也只能是一个参数,这是re模块自己的机制
不对。根据查询相关资料信息,python中定义函数时传递特点是必须被传值,多一个不行少一个也不行。
首先你要明白,Python的函数传递方式是赋值,而赋值是通过建立变量与对象的关联实现的。
对于你的代码:
执行 d = 2时,你在__main__里创建了d,并让它指向2这个整型对象。
执行函数add(d)过程中:
d被传递给add()函数后,在函数内部,num也指向了__main__中的2
但执行num = num + 10之后,新建了对象12,并让num指向了这个新对象——12。
如果你明白函数中的局部变量与__main__中变量的区别,那么很显然,在__main__中,d仍在指着2这个对象,它没有改变。因此,你打印d时得到了2。
如果你想让输出为12,最简洁的办法是:
在函数add()里增加return num
调用函数时使用d = add(d)
代码如下:
def add(num):
num += 10
return num
d = 2
d = add(d)
print d
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流