python - 类 对象 函数后面的参数问题,勉强看懂但是要自己写出来就感觉很困难
怪我咯
怪我咯 2017-04-18 10:20:39
0
2
479
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

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

怪我咯
怪我咯

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

全員に返信(2)
黄舟

Pythonクラスの関数はこのように書きます、a.setName('Ball A') is name='Ball A'。

いいねを押す +0
大家讲道理
  1. self は、Javathis と同様に、インスタンスが作成されるたびに動的です。
    Python の構文は次のとおりです。クラス メソッドを定義するときは、self明示的に定義する必要があります。 > ただし、呼び出すと、Python は自動的に self パラメータを暗黙的に渡します。 self是动态的,每次创建一个实例,它就代表这个实例本身,就像 Java 里的this
    Python 里的语法就是这样,类方法定义的时候需要显式定义self,但是在调用的时候 Python 自动隐式帮你传入了 self 参数。

  2. Python里 真正的实例化方法是__new__,__init__只是完成了参数的初始化,然后交给__new__实例化,所以 b = Ball('土豆') 这个调用传参格式要和__init__

Python の実際のインスタンス化メソッドは __new__ です。__init__ はパラメーターの初期化を完了し、それを __new__ に渡すだけです。 code> はインスタンス化されるため、 b = Ball('potato') 呼び出しのパラメーター受け渡し形式は __init__ と一致している必要があります。 🎜🎜 🎜
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!