国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python】面向對象 - 封裝 ② ( 訪問私有成員 | 對象無法訪問私有變量 / 方法 | 類內部訪問私有成員 )

這篇具有很好參考價值的文章主要介紹了【Python】面向對象 - 封裝 ② ( 訪問私有成員 | 對象無法訪問私有變量 / 方法 | 類內部訪問私有成員 )。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。





一、訪問私有成員




1、對象無法訪問私有變量


在下面的 Python 類 Student 中 , 定義了私有的成員變量 ,

    # 定義私有成員
    __address = None

該私有成員變量 , 只能在類內部進行訪問 , 類的外部無法進行訪問 ;

在 類外部 創(chuàng)建的 Student 實例對象 , 是無法訪問 __address 私有成員的 ;

使用 實例對象 訪問 類的私有成員 , 編譯時不會報錯 , 但是運行時會報錯

AttributeError: 'Student' object has no attribute '__address'. Did you mean: 'address'?

最后一行代碼

print(s1.__address)

訪問 s1 實例對象 的 __address 成員 , 會報如下錯誤 ;

【Python】面向對象 - 封裝 ② ( 訪問私有成員 | 對象無法訪問私有變量 / 方法 | 類內部訪問私有成員 ),Python,python,開發(fā)語言,面向對象,訪問私有成員,原力計劃


代碼示例 :

"""
面向對象 - 封裝
"""


# 定義 Python 類
class Student:
    name = None
    age = None

    def say(self):
        print(f"{self.name} is {self.age} years old")

    # 定義私有成員
    __address = None

    # 定義私有成員方法
    def __say(self):
        print(f"地址是 {self.__address}")

    def __init__(self, name, age, address):
        self.name = name
        self.age = age
        self.address = address


# 創(chuàng)建對象
s1 = Student("Tom", 18, "學院路6號")
print(s1.name)
print(s1.age)
print(s1.__address)

執(zhí)行結果 :

Y:\002_WorkSpace\PycharmProjects\pythonProject\venv\Scripts\python.exe Y:/002_WorkSpace/PycharmProjects/HelloPython/hello.py
Traceback (most recent call last):
  File "Y:\002_WorkSpace\PycharmProjects\HelloPython\hello.py", line 31, in <module>
    print(s1.__address)
AttributeError: 'Student' object has no attribute '__address'. Did you mean: 'address'?
Tom
18

Process finished with exit code 1

【Python】面向對象 - 封裝 ② ( 訪問私有成員 | 對象無法訪問私有變量 / 方法 | 類內部訪問私有成員 ),Python,python,開發(fā)語言,面向對象,訪問私有成員,原力計劃


2、對象無法訪問私有方法


在類中 定義私有成員方法

    # 定義私有成員方法
    def __say(self):
        print(f"地址是 {self.__address}")

創(chuàng)建對象 , 調用該私有成員方法 ,

# 創(chuàng)建對象
s1 = Student("Tom", 18, "學院路6號")
s1.__say()

報如下錯誤 :

AttributeError: 'Student' object has no attribute '__say'


代碼示例 :

"""
面向對象 - 封裝
"""


# 定義 Python 類
class Student:
    name = None
    age = None

    def say(self):
        print(f"{self.name} is {self.age} years old")

    # 定義私有成員
    __address = None

    # 定義私有成員方法
    def __say(self):
        print(f"地址是 {self.__address}")

    def __init__(self, name, age, address):
        self.name = name
        self.age = age
        self.address = address


# 創(chuàng)建對象
s1 = Student("Tom", 18, "學院路6號")
print(s1.name)
print(s1.age)
s1.__say()

執(zhí)行結果 :

Y:\002_WorkSpace\PycharmProjects\pythonProject\venv\Scripts\python.exe Y:/002_WorkSpace/PycharmProjects/HelloPython/hello.py
Tom
18
Traceback (most recent call last):
  File "Y:\002_WorkSpace\PycharmProjects\HelloPython\hello.py", line 31, in <module>
    s1.__say()
AttributeError: 'Student' object has no attribute '__say'

Process finished with exit code 1

【Python】面向對象 - 封裝 ② ( 訪問私有成員 | 對象無法訪問私有變量 / 方法 | 類內部訪問私有成員 ),Python,python,開發(fā)語言,面向對象,訪問私有成員,原力計劃


3、類內部訪問私有成員


在 Student 類中 , 定義了 私有成員變量 和 私有成員方法 :

    # 定義私有成員
    __address = None

    # 定義私有成員方法
    def __say(self):
        print(f"address is {self.__address}")

并且在 say 成員方法 中 , 調用了 上述 私有的 成員變量 和 成員方法 :

    def say(self):
        print(f"{self.name} is {self.age} years old , address is {self.__address}")
        self.__say()

最終的執(zhí)行結果為 :

Tom is 18 years old , address is 學院路6號
address is 學院路6

完整代碼示例 :

"""
面向對象 - 封裝
"""


# 定義 Python 類
class Student:
    name = None
    age = None

    def say(self):
        print(f"{self.name} is {self.age} years old , address is {self.__address}")
        self.__say()

    # 定義私有成員
    __address = None

    # 定義私有成員方法
    def __say(self):
        print(f"address is {self.__address}")

    def __init__(self, name, age, address):
        self.name = name
        self.age = age
        self.__address = address


# 創(chuàng)建對象
s1 = Student("Tom", 18, "學院路6號")
print(s1.name)
print(s1.age)
s1.say()

執(zhí)行結果 :

Y:\002_WorkSpace\PycharmProjects\pythonProject\venv\Scripts\python.exe Y:/002_WorkSpace/PycharmProjects/HelloPython/hello.py
Tom
18
Tom is 18 years old , address is 學院路6號
address is 學院路6號

Process finished with exit code 0

【Python】面向對象 - 封裝 ② ( 訪問私有成員 | 對象無法訪問私有變量 / 方法 | 類內部訪問私有成員 ),Python,python,開發(fā)語言,面向對象,訪問私有成員,原力計劃文章來源地址http://www.zghlxwxcb.cn/news/detail-540305.html

到了這里,關于【Python】面向對象 - 封裝 ② ( 訪問私有成員 | 對象無法訪問私有變量 / 方法 | 類內部訪問私有成員 )的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包