self の使用法
1. Self はインスタンス自体 (Instance) を指します (推奨学習: Python ビデオ チュートリアル)
2. "self" という単語は相対的な用語で "other" を指すため、クラス、およびローカル変数やグローバル変数などの他の変数を指します。
ここでの self、それはオブジェクトです (オブジェクト)、現在のクラスのインスタンス。
Python に self がある理由
クラス コード (関数) では、現在のインスタンスの変数と関数にアクセスする必要があります。つまり、(インスタンス) インスタンスの
に対応する変数 (プロパティ): Instance.ProperyNam、以前の値と書き込まれた値を読み取ります
(2) 対応する関数を呼び出します: Instance.function()つまり、対応するアクションを実行するには
# 、インスタンスの変数にアクセスしてインスタンスの関数を呼び出す必要があります。もちろん、対応するインスタンスの Instance オブジェクト自体が必要です
Python では、関数の最初のパラメータはインスタンス オブジェクトそのものでなければならないと規定されており、その名前を self##! usr/bin/python3.7
# -*- coding:utf-8 -*-
"""
class Person(object):
def __init__(self, name, lang, website):
self.name = name
self.lang = lang
self.website = website
print('self', self)
print('type of self', type(self))
class Dog(object):
def __init__(self, name, dog_type):
self.name = name
self.dog_type = dog_type
# def sayhi():
# print("hello I am dog, my name is ",self.name)
def sayhi(self):
print("hello ,I am dog, my name is ",self.name)
if __name__ == '__main__':
p = Person('xiaoliang', 'hanyu', 'www.mutual-helper.com')
d = Dog('Caty', 'Firce')
"""当程序运行时,会报错,takes 0 positional arguments but 1 was given
这是因为这个函数不需要参数,但是函数却被传递了一个参数,可是我们调用sayhi()函数的时候,
并没有写参数。为什么会出现这样的参数Error
这是因为"每一个相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用__init__中的
参数self会自动传递给sayhi(),而sayhi()在定义的时候没有形参,就会报错。
"""
d.sayhi()
# d.sayhi(self),也会报错
と記述することをお勧めします##rrreee
Python チュートリアル 列にアクセスして学習してください。
以上がPythonでselfを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。