> 馆藏中心

问个python基础问题,为什么时间不更新 及 name 'ss' is not defind

来源:cnblogs 编辑:张华

在Python2.X下你应该用raw_input来请求输入,而不是input这时候错误已经不是TypeError,而是NameError,所以try命令不能捕获追问input输入不能是字符串吗?追答Python2raw_input才是输入字符串Python3input变成了raw_input的功能,try:    x=input('Enter the first number:')    y=input('Enter the second number:')    print x/yexcept ZeroDivisionError:    print "The second number cannot be zero"except TypeError:    print "That wasnot a number, was it?" except NameError:    print "That was not a variab name"input的输入2113直接被当成python表达式评估5261,4102输入d,就表示1653变量版 d,输入"d"表示字符串,才会权触发TypeError异常www.179s.com防采集请勿采集本网。

我也是个菜鸟,发表一下自己的看法,还请大牛指点。

第一个问题:变量ss的命名空间在你类的内部,他不是全局变量,属于这个类的局部变量,你使用globalss 这条语句有两层含义。1、如果外部有ss这个全局变量,你可以在方法内修改这个全局变量ss。2、如果外部没有ss这个全局变量,会创建一个全局变量,创建变量后你得给它赋值,要不然不能使用。你的这个问题就属于第二种。

没用过socket,不过你试着在第一行加入 import socket

第二个问题:方法a打印的是全局变量t,而全局变量t是在程序加载时被赋值的,之后你的while循环方法a中没有给t重新赋值,所以会一直打印一个值,就是程序启动的那个时间。方法b同理,只不过方法b是打印的类的属性也就是变量ss,变量ss的值在第一次调用被赋值后,没有被重新赋值,所以它的值不会变。方法d打印的值之所以会变是因为它一直打印的是当前时间。

init方法写错了,是双下划线,__init__ 没有__init__方法,所以就没有参数。报错就是告诉你,你带了参数,但Dog类没有定义。

你可能误以为每调用一次变量t或者ss就会调用一次time.strftime('%H:%M', time.localtime()),这种想法是不对的,如果是这样的话,那我还用变量干嘛直接用time.strftime('%H:%M', time.localtime())不就行了嘛。之所以使用变量是因为它可以将值保存下来,方便后面的其它方法使用,如果你想改变它的值就需要重新给它赋值。奖励园豆:5问题1 , 你定义的ss不是全局变量,所以用global会找不到;

不应该,下面是一个例子 >>> import datetime>>> datetime.date(2015, 12, 25).strftime("%Y/%m/%d")'2015/12/25'>>>

问题2,因为调用a(),d()函数只是打印了ss的值,并没有重新赋值,ss = time.strftime('%H:%M', time.localtime())这条语句只执行了一次。

你有两个知识点不熟悉 1、对象属性、类属性 2、类、对象方法默认传参 我稍微改了一下,你再看看或许会有新的发现。 @classmethod 标记了下面一个方法是类方法,应该默认是cls,而你没懂cls意思,想当然的改成了self,于是产生了歧义。 类方法的

先回答__:由于python的类成员都是公有、公开的32313133353236313431303231363533e78988e69d8331333330323961被存取public,缺少像正统面向对象语言的私有private属性。于是就用__来将就一下,模拟私有属性。这些__属性往往是内部使用,通常情况下不用改写。也不用读取。加上2个下划线的目的,一是不和普通公有属性重名冲突,二是不让对象的使用者(非开发者)随意使用。面向对象是一种方法学的提高。不用对象用模块的确能行,就像C语言也用类似的、没有对象的方式提供模块,也能开发任何东西。但用了对象能提高代码复用、提高开发效率,减轻开发者的劳动。怎么用好对象,涉及太广,需要用几本书来写。简单给你说就像工厂做一个石膏雕塑。class类就相当于模具。object对象相当于模具倒出来的雕塑。雕塑可以大量被复制。要修改雕塑,是去修改模具,而不是改雕塑成品。从数据的角度,一个雕塑可能由多个基础部件组成,手、脚、头,这些是数据当然对象也有动作,对象所有的函数都是它的动作,比如跑、吃、叫。最常见的,学生类,规定一些数据,姓名、电话、年龄、这些是数据学生会“答题” “吃饭”,“消费”,“联系”“动手”这些是传递消息的动作。这种把数据和动作结合就是一个对象,类拿来规范这些数据和动作。再次使用这同一类的对象,就不需要重复开发,__name__=='__main__'的意思就是程序脚本是被直接执行的如果不等于那么表示本脚本是被其他程序用import命令引入的,随便找本 含有面向对象特性的编程语言书籍,一般都有解释,这是软件开发效率,安全等思路问题。如果技术过关,面向过程和面向对象写出来的程序的执行效果没什么不同,因为你还没有看懂,这个脚本被执行2113的时候,5261__name__值就是4102__main__,1653才会执行main()函数内如果这个脚本是被import的话,__name__的值不一样。容main()函数就不会被调用。这个句子用来写既能直接运行,又能给其他python程序import,提供库调用的脚本内容来自www.179s.com请勿采集。

本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。本文《问个python基础问题,为什么时间不更新 及 name 'ss' is not defind》转载自cnblogs,版权归原作者所有,若侵权请联系:E-MAIL:513175919@qq.com
违法违规信息请立即联系本网可获得现金奖励,TEL:1-8-2-1-0-2-3-3-3-8-1(电话仅供违法违规信息举报,侵权类信息请EMAIL。)

www.179s.com false 互联网 http://www.179s.com/jsblogcnk/pd/pddxxo.html report 3930 我也是个菜鸟,发表一下自己的看法,还请大牛指点。第一个问题:变量ss的命名空间在你类的内部,他不是全局变量,属于这个类的局部变量,你使用globalss 这条语句有两层含义。1、如果外部有ss这个全局变量,你可以在方法内修改这个全局变量ss。2、如果外部没有ss这个全局变量,会创建一个全局变量,创建变量后你得给它赋值,要不然不能使用。你的这个问题就属于第二种。第二个问题:方法a打印的是全局变量t,而全局变量t是在程序加载时被赋值的,之后你的while循环方法a中没有给t重新赋值,所以会一直打印一个

热门图片

经济金融企业管理法律法规社会民生科学教育降生活体育运动文化艺术电子数码电脑网络娱乐休闲行政地区心理分析医疗卫生