你打印p当然就什么都没有,因为p是你申请的People的实例,也就是内存(__main__.People instance at 0x01D0DCD8)
目前成都创新互联公司已为成百上千家的企业提供了网站建设、域名、虚拟主机、网站托管、服务器租用、企业网站设计、肇东网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
这个实例可以调用People中的方法,也就是sayhello()
python函数参数为None的时候,比如 def req(self, b=None),是因为这个函数是一个封装函数,在没有调用他的时候他的参数需要加上None。如果不加None值,不调用函数他会报错。 一般会用在封装类或者框架里。比如说框架一般会有一个总的调用函数,总的调用函数启动,这次没有获取到值,执行到req函数时无法给req函数参数,那如果没有参数req函数就会报错。一般会报:‘req() missing 1 required positional argument: 'b'’但是如果参数为None就不会报错。如果程序执行到req参数传递成功的话,参数就不会是None了。 所以None是一个防止报错的机制。
函数最后一句,递归调用函数前 加一个return 。
具体原因,你要去复习递归的调用及返回的机制。
自己开发时候也经常遇到这样的需求:程序运行后,结果不正确,想要调试一下。但这时程序已经关闭,如果要调试,只能在代码里添加输出,重新跑。或者用 debug 模式加断点。虽说这也没毛病,但如果程序比较长,尤其像爬虫类的程序,总是反复重新跑也是蛮蛋疼的。
那有没有别的方法,比如像 python shell 那样,运行之后的变量仍然保持在内存中,可以继续操作?
答案是肯定的。PyCharm 就有这个功能。但不幸的是,这个功能的开启并不在 PyCharm 的 Preference 设置里,自然也就搜索不到,于是很多人并不知道。当时我看了问题下面的所有答案,没有一个提到。包括我自己,在之前某次偶然发现这个功能之后,后来又再次想找,也是在各项菜单、配置栏目里翻了半天才找到。
正确的打开方式如下:
在菜单栏里,选择项目的下拉菜单里选择Edit Configuration
在对应项目的设置里勾选上 Show command line afterwards
就OK了。
程序执行后会保持在 python shell 的状态,可以对程序中的数据进行调试。
因为你没调用函数啊,所以不显示。
而且python的main函数不是这么写的。你的main函数应该这么写
if __name__=='__main__':
x=max(1,2)
print('this is ',x)