Python3问题TypeError: object() takes no parameters

    

    时间是一切财富中最宝贵的财富。--------德奥弗拉斯多


    Python中关键字变量和特殊函数,都是以__xxx__来表示的,初学Python的朋友,需要注意其中变量名中前后是有两个下划线(_)的,如果不注意,调用内部关键字变量和特殊函数时,将会出现错误:

<模块调用时>

'A test module'



import sys

def test():
    args = sys.argv
    if len(args)==1:
        print('Hello,World!')
    elif len(args)==2:
        print('Hello, %s!' % args[1])
    else:
        print('Too many arguments!')


if _name_=='_main_':
    test()


运行报错

"E:\python\python project\myfirst\venv\Scripts\python.exe" "E:/python/python project/myfirst/vari/_first_module.py"
Traceback (most recent call last):
  File "E:/python/python project/myfirst/vari/_first_module.py", line 17, in <module>
    if _name_=='_main_':
NameError: name '_name_' is not defined

<面向对象编程时>

class Student(object):
    def _init_(self,name,age):
        self.name=name
        self.age=age

    def print_core(self):
        print('%s:%s' % (self.name,self.age))


stu1 = Student('tpc',26)
stu1.print_core()
报错

"E:\python\python project\myfirst\venv\Scripts\python.exe" "E:/python/python project/myfirst/vari/_first_class.py"
Traceback (most recent call last):
  File "E:/python/python project/myfirst/vari/_first_class.py", line 10, in <module>
    stu1 = Student('tpc',26)
TypeError: object() takes no parameters


    两个错误都是由于关键字变量和特殊函数都是使用__XXX__这样前后双下划线的格式,调用时正确调用即可避免问题出现,在此测试如下:

class Student(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def print_core(self):
        print('%s:%s' % (self.name,self.age))


stu1 = Student('tpc',26)
stu1.print_core()
运行结果:

"E:\python\python project\myfirst\venv\Scripts\python.exe" "E:/python/python project/myfirst/vari/_first_class.py"
tpc:26


喜欢的朋友可以扫描以下二维码进行关注,公众号将每天更新文章:








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值