溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python里的self怎么用

發布時間:2020-10-10 17:35:57 來源:億速云 閱讀:295 作者:小新 欄目:編程語言

小編給大家分享一下python里的self怎么用,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

self的用法

1.自身  指的是實例本身(Instance)

2.由于"自身"這個詞,都是相對而言的"其它"說的,指的是類class,和其它變量,比如局部變量,全局變量

此處的self,是個對象(Object),是當前類的實例。

Python中為什么要有self

在類的代碼(函數)中,需要訪問當前的實例中的變量和函數的,即訪問(實例)Instance中的

對應的變量(屬性,property):Instance.ProperyNam,去讀取之前的值和寫入的值

(2)調用對應的函數(function):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),也會報錯

看完了這篇文章,相信你對python里的self怎么用有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女