zoukankan      html  css  js  c++  java
  • Python self学习

    最开始学习Python时,用的IDE是IDEL,看的教程是《简明Python教程》,强烈推荐一下,讲得还是很不错的,适合新手学习

    http://www.kuqin.com/abyteofpython_cn/index.html

    学到面向对象编程时,遇到了一个小问题

    class Person:
    def add(a,b):
    print(a+b)
    p = Person()
    p.add(1,2)

    按照java的思路来看没问题,但是运行时却出现了错误

    Traceback (most recent call last):
    File "C:/Users/zym09/Desktop/test.py", line 5, in <module>
    p.add(1,2)
    TypeError: add() takes 2 positional arguments but 3 were given

    不是很理解这种错误是什么原因,以为是编辑器出了问题

    好吧~换个编辑器,试试eclipse

    但是,重点来了,在eclipse中写add方法是直接显示了add(self),代码自动提示出来,

    好吧,原来是没认真看,再回头看self的介绍

    类的方法与普通函数只有一个特别的区别,他们必须有一个额外的第一个参数的名称,但是在调用这个方法时可以不必为这个参数赋值,这个特别的变量指对象本身(类似于java中的this)

    所以正确的代码应该是

    class Person:
    str="aaa"
    def add(self,a,b):
    print(a+b)
    print(self.str) 
    p = Person()
    p.add(1,2)

    这样最终输出是:

    3
    aaa

    直陈陋见,欢迎指教

  • 相关阅读:
    第二次作业。。
    第一次随笔作业
    第一次作业
    第4次随笔
    第3次随笔
    第2次作业
    第一次随笔
    我的第一次随笔
    iforums
    第四次作业
  • 原文地址:https://www.cnblogs.com/sdnu-zhang/p/8422659.html
Copyright © 2011-2022 走看看