iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 4
0
自我挑戰組

自我學習python系列 第 26

物件導向5

今天來看看今天來看看私有化 (private)
Python本身沒有嚴謹定義private,所以應用上基本都是使用,雙底線命名規則。
我們今天依舊請到我們的bmiclass

#bmiclass.py
class health:
    def __init__(self,h=0,w=0):
        self.height=h
        self.weight=w
    def BMI(self):
        return self.weight / ((self.height/100)**2)

現在的樣子是預設public外部都可存取的
那我們雙底線要加在哪呢~ 屬性、方法前加上 __ 即可成為私有屬性或私有方法

self.__height
self.__weight

def __BMI(self):
        return self.__weight / ((self.__height/100)**2)

此時我們就能看到
https://ithelp.ithome.com.tw/upload/images/20191010/201210244bmMt1QLv3.png

此時如果要存取就要另外使用間接存取內部的函式的私有方法

class health:
    def __init__(self,h=0,w=0):
        self.__height=h 
        self.__weight=w
    def __BMI(self):
        return self.__weight / ((self.__height/100)**2)
    def getBMI(self):
        return self.__BMI()
    def getHeight(self):
        return self.__height
    def getWeight(self):
        return self.__weight

https://ithelp.ithome.com.tw/upload/images/20191010/20121024aagMbDEir1.png


上一篇
物件導向4
下一篇
檔案讀取
系列文
自我學習python30

尚未有邦友留言

立即登入留言