Maison > Questions et réponses > le corps du texte
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
前后对比,详解区别及代码矫正。
黄舟2017-04-18 10:22:39
La fonction de la classe Python est écrite comme ceci, c'est a.setName('Ball A') et c'est name='Ball A'.
大家讲道理2017-04-18 10:22:39
self
est dynamique. Chaque fois qu'une instance est créée, elle représente l'instance elle-même, tout comme le Java
dans this
.
La syntaxe dans Python
est comme ceci. Lorsque la méthode de classe est définie, elle doit être explicitementdéfinieself
, mais lorsqu'elle est appelée, Python <🎜 automatiquement. >implicitement vous aide à passer les paramètres . self
est Python
, __new__
termine simplement l'initialisation des paramètres puis la remet à __init__
pour l'instanciation, donc b = Ball('potato') L'appel Le format de transmission des paramètres doit être cohérent avec __new__
. __init__