ホームページ >バックエンド開発 >Python チュートリアル >クラスのインスタンス化の概要

クラスのインスタンス化の概要

零下一度
零下一度オリジナル
2017-07-20 21:06:142850ブラウズ

1. クラスを定義します

class Dog(object):   # 定义class

    def __init__(self, name):  # 构造函数,构造方法 == 初始化方法
        self.name = name   # d.name = name  类的属性 / 成员变量

    def say_hi(self):   # 类的方法
        print("Hello, I am a dog. My name is", self.name)

    def eat(self, food):
        print("%s is eating %s." % (self.name, food))


d = Dog("xiaohei")  # Dog(d,"xiaohei")  d == self

# d 实例化的对象即实例,类中的self相当于实例

d.say_hi()   # d.say_hai(d)

d.eat('beaf')
  • 最初のメソッド __init__() メソッドは、このクラスのインスタンスが作成されるときに、クラスのコンストラクターまたは初期化メソッドと呼ばれる特別なメソッドです。

  • self は、クラスのメソッドを定義するときにクラスのインスタンスを表しますが、呼び出すときに対応するパラメーターを渡す必要はありません。

2. Self はクラスではなくインスタンスを表します

クラスメソッドと通常の関数の間に特別な違いが 1 つだけあります - 慣例により、追加の 最初のパラメータ名 が必要です 名前は self です。

class Dog(object):

    def prt(self):
        print(self)
        print(self.__class__)

d = Dog()


print(d)
print("-------------")
d.prt()


#输出
<__main__.Dog object at 0x000001DDBD10C5F8>
-------------
<__main__.Dog object at 0x000001DDBD10C5F8>
<class &#39;__main__.Dog&#39;>

実行結果から、self.class がクラスを指しているのに対し、self はクラスのインスタンスを表し、現在のオブジェクトのアドレスを表していることが明確にわかります。

3. インスタンス オブジェクトを作成する

他のプログラミング言語では一般に、キーワード new がクラスをインスタンス化するために使用されますが、Python にはそのようなキーワードはありません。クラスのインスタンス化は関数呼び出しに似ています。

# 创建一个Dog类的对象
d = Dog("xiaohei")

インスタンス化されたオブジェクトはインスタンスとも呼ばれます:

4. プロパティにアクセスします

ドット (.) を使用してオブジェクトのプロパティにアクセスできます

# 通过 d.方法   来访问属性
d.eat(&#39;beaf&#39;)

#输出
xiaohei is eating beaf.

以上がクラスのインスタンス化の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。