1. 程式人生 > >Python類中的"私有欄位"和"私有屬性"

Python類中的"私有欄位"和"私有屬性"

@staticmethod
def Forward():
    print u'開始向前進'#coding:utf-8

class Car:
    # 下面是靜態欄位
    memo = u'車輛具有出廠合格證'
    
    def __init__(self, brand, model, speed, price):
        # 下面是動態欄位
        self.Brand = brand
        self.Model = model
        self.Speed = speed
        self.Price = price
        self.__EngineType = 'V12'
        
    # 下面是動態方法
    def Turnleft(self):
        print self.Brand + u'開始向右轉向。'
    
    # 這是靜態方法
    @staticmethod
    def Forward():
        print u'開始向前進'
    
    # 建立一個"公有方法",在方法中,去呼叫"私有欄位"
    def ShowEngine(self):
        print self.__EngineType
    
    # 建立一個"私有方法",試試在外部是否能夠對其進行訪問
    def __SpeedUp(self):
        print self.Model + " is speed up!"
    
    # 建立一個"公有方法",在方法中,去呼叫"私有方法",然後在外部呼叫這個"公有方法",看看是否能夠間接訪問"私有方法"
    def PubSpeedUp(self):
        self.__SpeedUp()

jordan_car = Car('BMW', 'X1', 230, 35)

"""
這裡的'EngineType'是"私有動態欄位",原則上是不能夠被外部呼叫,但是可以使用    '物件名' + '.' + '_' + '類名' + '__' + '私有欄位'  進行呼叫
"""
# print jordan_car._Car__EngineType

"""
如果不使用上面的強制方法去訪問"私有欄位",那麼有一種間接訪問的方式,就是在"類"中,定義一個"公有方法",用這個方法去呼叫"私有欄位",也可以達到相同的效果
"""
#jordan_car.ShowEngine()

jordan_car.PubSpeedUp()

相關推薦

Python的"私有""私有屬性"

@staticmethod def Forward(): print u'開始向前進'#coding:utf-8 class Car: # 下面是靜態欄位 memo = u'車輛具有出廠合格證' def __init__(self, brand, model, sp

【譯】7. Java反射——私有私有方法

 ===========================================================================================      儘管普遍的觀點是不能直接訪問私有欄位和私有方法的,實際上通過Java反射是可以訪問其他類的私有欄位和私有方法

C#反射呼叫另外一個私有方法

        /// <summary>        /// 設計器支援所需的方法 - 不要        /// 使用程式碼編輯器修改此方法的內容。        /// </summary>        private void InitializeComponent()  

djang模型BinaryField的序列化輸出問題外來鍵問題

最近在專案開發時進行模型類設計時遇到了一些問題,在這裡和大家分享以下 1.BinaryField欄位的序列化輸出問題 專案經理的需求是將多個不同資料庫的查詢結果資訊存放到另一個關係型資料庫(比如mysql1)中,那麼多個數據庫的查詢資訊的欄位上,型別上都不相同,這導致我在儲存資料庫(mysq

使用的靜態建構函式,可以跟蹤某個所建立物件的個數

  package TongJi; public class Duixiang { private static int n; public Duixiang() { n++; } public static int g

使用的靜態建構函式,可以跟蹤某個所建立物件的個數。請寫一個,在任何時候都可以向它查詢“你已經建立了多少個物件

package demo; public class Tongji { private static int n; public Tongji() { n++;//次new一個物件的時候都可以給n加1 } public static int ge

使用的靜態建構函式,跟蹤某個所建立物件的個數

建立一個靜態變數,每生成一個物件,使該變數加一 package trackobjectnum; public class ObjectNum { private static int n = 0; public ObjectNum() { n = n + 1;

將oracle表名全部修改為小寫

在建立表和表結構的時候,如果想要小寫需要在名稱上面新增雙引號,如果不新增oracle資料庫會預設識別為大寫 1.將表名和欄位名改為大寫 批量將表名變為大寫 begin    for c in (select table_name tn from user_tabl

的靜態建構函式

package jiecheng; public class sum { public static int a=0; int c; public sum(int cc) { c=cc; a++; } public int get() { return a; }}

java反射機制——獲取位元組碼對應

package cn.itcast.reflect.demo; import java.lang.reflect.Field; public class ReflectDemo3 { public static void main(String[] args) throws ClassNot

poj 2018_Best Cow Fences (求數列一個最大問題,的長度不小於L)

想要理解這個問題我們需要先掌握幾個要點: 1、對於一個序列,求一個欄位它的和最大,沒有“長度不小於L的限制”問題。 2、對於一個序列,求一個欄位它的和最大,欄位的長度不小於L的問題。 欄位和可以轉化成為字首和相減的形式,也就是說sumi=(a1+a2+...+ai)

集合 modCount 的作用

在閱讀 AbstractList 原始碼時,發現有一個欄位叫modCount。同時ArrayList、LinkedList、HashMap中都有 原始碼中的程式碼: /** * The number of times this list has been <

讓django模型model名顯示為中文

簡單方法: models.py class IceCreamBar(models.Model): title = models.CharField(max_length=200,db_index=True,verbose_name="名稱")

python的self引數cls引數

1. self表示一個類的例項物件本身。如果用了staticmethod就無視這個self了,就將這個方法當成一個普通的函式使用了。2. cls表是這個類本身。# 程式碼為證 class A(object): def func1(self): prin

Scala的私有屬性物件的私有

在Scala中,一個類定義了一個屬性,如果不是private的 var age=0 那麼它也會預設當成private級別的屬性,同時會預設生成setter和getter方法,當呼叫的時候,會通過age的函式來取得age的值,就是getter方法 而預設生成的setter方法

19. Python 的重寫   私有變量私有方法

python 類1.類的重寫例子:class parent(object): name = ‘parent‘ age = 100 def __init__(self): print(‘my name is parent‘) def get_name(self):

python 私有變量私有方法

所有 成員 就是 變量 屬性變量 author 類的屬性 其他 一個 #!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/11/08 8:46 # @Author : lijunjiang # @Fi

【java學習筆記】MyBatis當實體屬性名不一樣時的解決方法

在使用MyBatis開發DAO層時,當實體類中的屬性名和表中的欄位名不一樣時,查詢出來的值為null,此時有3種解決方法 解決方法1                在Mapper.xml對映檔案中,寫SQL語句時起別名 解決

孤荷凌寒自學python第二十四天python隱藏的私有方法探祕

孤荷凌寒自學python第二十四天python類中隱藏的私有方法探祕   (完整學習過程螢幕記錄視訊地址在文末,手寫筆記在文末) 今天發現了python的類中隱藏著一些特殊的私有方法。 這些私有方法不管我們定義類時是否在類的內部程式碼塊中定義過它們,這些私有方法都是存在的。比如已經知道的 _