十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
答: 是这样的呢,你自己再看一下你的代码,相当于你只是调用了开二次方的这个函数,确实会得到一个运算结果,但是你并没有把它显示出来呢。所以你应该在你的第2行语句下面加一行打印语句print。然后将整个第2行放在print函数里面。
超过十余年行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:网站设计、成都网站设计,成都网站推广,成都网站优化,整体网络托管,小程序定制开发,微信开发,成都app开发,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!
希望对你有帮助~
python函数参数为None的时候,比如 def req(self, b=None),是因为这个函数是一个封装函数,在没有调用他的时候他的参数需要加上None。如果不加None值,不调用函数他会报错。 一般会用在封装类或者框架里。比如说框架一般会有一个总的调用函数,总的调用函数启动,这次没有获取到值,执行到req函数时无法给req函数参数,那如果没有参数req函数就会报错。一般会报:‘req() missing 1 required positional argument: 'b'’但是如果参数为None就不会报错。如果程序执行到req参数传递成功的话,参数就不会是None了。 所以None是一个防止报错的机制。
要使用线程:
要么定义一个类继承threading.Thread,重写run方法;
要么创建一个threading.Thread类的对象,将你要线程执行的函数指定为target参数。
你这里定义了类ThreadClass,但没继承threading.Thread类,又指定了target,但指定的是一个类不是一个函数,所以没输出。
非要这样搞,可以改成这样:
import threading
class ThreadClass:
def __init__(self,num): self.num = num
def run(self):
print("this is def ",self.num)
n=['a','b','c','d','e']
lis=[]
for i in n:
th = threading.Thread(target=ThreadClass.run,args=(ThreadClass(i),))
lis.append(th)
for t in lis:
t.start()
for t in lis:
t.join()
缩进格式见图:
运行结果如下: