量化金融基礎篇 [ python 類定義與import操作 ]

class Animal(object):
  def __init__(self,name,age):
    self.name = name
    self.age  = age
  
  def sit(self):
    print(self.name + 'set')

  def roll_over(self):
    print(self.name + 'roll over')

如上例所示,__init__函數方法跟C++的new()一樣,是用於初始化class的,其中self跟C++的this指針有些類似,用於指定自己所具有的class內部變量。__init__函數中的self參數是必須寫的,並且要放在所有參數的前面。

#dog類繼承自animal類
class Dog(Animal):
  def __init__(self,name,age):
    super(Dog,self).__init__(name,age)#用於初始化父類數據
    self.name = name
    self.age  = age
  #重寫方法
  def sit(self):
    print(self.name + 'is wang wang')

相對C++來講方法的重寫直接簡單粗暴的寫相同名字即可重寫。


python導入模塊或者類使用import語句。相當於C++的include.

比如一個文件名叫做 code.py,裏面有各種各樣的類:class1 class2等

#從code.py文件導入class1
from code import class1
#從code.py文件導入class2
from code import class2
#或者
from code import class1,class2
#導入整個模塊
import car
#導入模塊中的每個類
from car import *

python的類也支持操作符重載

class template(object):
  def __init__(self,a,b):
    self.a = a
    self.b = b
  #操作符重載
  def __add__(self,other):
    return template(self.a+other.a,self.b+other.b)

python類私有化變量需要在變量前面加兩個下劃線,比如__private_value

protect變量只加一個下劃線_protect_value

__functionname__兩個下劃線+函數名+兩個下劃線是系統自定義的函數,如:

__init__,  __del__(相當於C++的析構函數) , __cmp__(self,x) 比較對象。


python內置類屬性,這些是python聲明類中系統爲類自動添加的一些屬性變量,他們是public的可以直接訪問。

__dict__ : 類的屬性

__doc__ : 類 的文檔字符串

__name__ : 類名

__module__ : 類定義所在的模塊

__bases__ : 類的所有父類構成元素



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章