python是一種解釋型、物件導向、動態資料型別的高階程式語言。
能正確理解解釋型、物件導向、動態
這三個特性很重要,能更好地編寫層次分明、高效簡潔的python**,能更好地使用python的能力。
這裡對python的物件導向特性基礎進行簡單總結記錄。
詳細內容待補充。
序號方法, 描述 & 簡單的呼叫
1init( self [,args…] )
建構函式
簡單的呼叫方法: obj = classname(args)
2del( self )
析構方法, 刪除乙個物件
簡單的呼叫方法 : del obj
3repr( self )
轉化為供直譯器讀取的形式
簡單的呼叫方法 : repr(obj)
4str( self )
用於將值轉化為適於人閱讀的形式
簡單的呼叫方法 : str(obj)
5cmp( self, x )
物件比較
簡單的呼叫方法 : cmp(obj, x)
6add( self, x )…
運算子過載
簡單的呼叫方法 : object1 + object2
類的私有屬性
__private_attrs:兩個下劃線開頭,宣告該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時 self.__private_attrs。
類的方法
在類的內部,使用 def 關鍵字可以為類定義乙個方法,與一般函式定義不同,類方法必須包含引數 self,且為第乙個引數
類的私有方法
__private_method:兩個下劃線開頭,宣告該方法為私有方法,不能在類的外部呼叫。在類的內部呼叫 self.__private_methods
#!/usr/bin/python
# -*- coding: utf-8 -*-
class justcounter:
__secretcount = 0 # 私有變數
publiccount = 0 # 公開變數
def count(self):
self.__secretcount += 1
self.publiccount += 1
print self.__secretcount
counter = justcounter()
counter.count()
counter.count()
print counter.publiccount
print counter.__secretcount # 報錯,例項不能訪問私有變數
# python不允許例項化的類訪問私有資料,但可以使用 object._classname__attrname( 物件名._類名__私有屬性名 )訪問屬性
#!/usr/bin/python
# -*- coding: utf-8 -*-
class runoob:
__site = "www.runoob.com"
runoob = runoob()
print runoob._runoob__site
單下劃線、雙下劃線、頭尾雙下劃線說明:
staticmethod classmethod property 說明
如果在@staticmethod中要呼叫到這個類的一些屬性方法,只能直接類名.屬性名或類名.方法名。
而@classmethod因為持有cls引數,可以來呼叫類的屬性,類的方法,例項化物件等,避免硬編碼。
staticmethod,classmethod簡單**樣例:
class a(object):
bar = 1
def foo(self):
print 'foo'
@staticmethod
def static_foo():
print 'static_foo'
print a.bar
@classmethod
def class_foo(cls):
print 'class_foo'
print cls.bar
cls().foo()
a.static_foo()
a.class_foo()
@property屬性舉例
import math
class circle:
def __init__(self,radius): #圓的半徑radius
self.radius=radius
@property
def area(self):
return math.pi * self.radius**2 #計算面積
@property
def perimeter(self):
return 2*math.pi*self.radius #計算周長
c=circle(10)
print(c.radius)
print(c.area) #可以向訪問資料屬性一樣去訪問area,會觸發乙個函式的執行,動態計算出乙個值
print(c.perimeter) #同上
輸出結果:
314.1592653589793
62.83185307179586
參考:
python之物件導向詳解 一
1.物件導向的簡介 python是一門物件導向的語言。所謂的物件導向語言,就是語言中所有的操作都是通過物件來進行的。面向過程 1.面向過程是指,我們將程式分解為乙個乙個的步驟,通過每個步驟的抽象來完成程式。2.這種方法往往只適用於乙個功能,如果要實現別的功能,往往復用率比較低。3.這種方法比較適合人...
swift物件導向詳解
swift的物件導向 主要包括如何建立類,建立和使用類方法,類的繼承,類的擴充套件,如何使用介面及協議 命名空間 在同乙個類,在不同的類 main.swift swiftobjectfromjike created by ytdxxt on 14 12 11.import foundation 1 ...
物件導向詳解(二)
許可權修飾符 類名 引數列表 注意 構造方法的方法名字必須和類名保持完全一致 構造方法沒有返回值,不要寫返回值型別,連void也不用 每乙個類缺省會有乙個空參的空參的構造方法 如果自己寫了構造方法,預設的構造方法就失效了package com.qf.obj public class demo01 c...