python - 类 对象 函数后面的参数问题,勉强看懂但是要自己写出来就感觉很困难
怪我咯
怪我咯 2017-04-18 10:20:39
0
2
494
class Ball:
    def setName(self,name):
        self.name=name
    def kick(self):
        print('我是%s,该死的,谁踢我...'%self.name)
a=Ball()
a.setName('球A')
b=Ball()
b.setName('球B')
c=Ball()
c.setName('球C')
a.kick()
c.kick()
我是球A,该死的,谁踢我...
我是球C,该死的,谁踢我...

a.setName()函数定义的时候有两个参数self,name。a.setName('球A')后面又只有一个了,那是表示self=‘球A’吗,那第二个函数kick里的语句sefl.name又作如何解释呢?

class Ball:

def _init_(self,name):
    self.name=name
def kick(self):
    print('我是%s,该死的,谁踢我...'%self.name)

b=Ball('土豆')
b.kick()
c-Ball()
    b=Ball('土豆')
TypeError: object() takes no parameters

前后对比,详解区别及代码矫正。

怪我咯
怪我咯

走同样的路,发现不同的人生

membalas semua(2)
黄舟

Fungsi kelas Python ditulis seperti ini, ia adalah a.setName('Ball A') dan ia adalah name='Ball A'.

大家讲道理
  1. self adalah dinamik Setiap kali tika dibuat, ia mewakili tika itu sendiri, sama seperti Java dalam this.
    Sintaks dalam Python adalah seperti ini Apabila kaedah kelas ditakrifkan, ia perlu secara eksplisitditakrifkanself, tetapi apabila dipanggil, Python secara automatik secara tersirat membantu anda memasukkan parameter . self

  2. Kaedah instantiasi sebenar dalam

    ialah Python, __new__ hanya melengkapkan pemulaan parameter dan kemudian menyerahkannya kepada __init__ untuk instantiasi, jadi b = Ball('Potato') Panggilan format lulus parameter mesti konsisten dengan __new__. __init__

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!