class student(object):
pass
s1 = student()
#給s1新增屬性
s1.name = 'haozhang'
print(s1.name,'\n')
#給s1新增方法
def setage(self,age): #此處同時還新增了例項屬性屬性age
self.age = age
from types import methodtype
s1.setage = methodtype(setage, s1)
s1.setage(120) #活到120,哈哈哈
print(s1.age, '\n')
student.name = 'i am student' #
s2 = student()
print(s2.name,'\n')
#給class新增
def setscore(self,score):
self.score = score #這裡等價於也新增了例項屬性score
student.setscore = setscore #直接把剛外部定義的方法傳給student
s3 = student()
s3.setscore(101)
s2.setscore(102)
s1.setscore(103)
print(s3.score, '\n')
print(s2.score, '\n')
print(s1.score, '\n')
class animal(object):
__slots__ = ('name','age') #用tuple來限定animal的所有instance的屬性,但是無法
#無法限制animal的子類的instance的屬性
a1 = animal()
a2 = animal()
a3 = animal()
a1.name = 'a1'
a2.age = 123
#a3.gender = 'female' #會報錯:沒有這樣的attribution
#但是animal的子類卻不受限制
class dog(animal):
pass
d = dog()
d.gender = 'male' #這是animal限制之外的屬性
print(d.gender,'\n') #完全ok
19 物件導向之語法(4)
即把呼叫get 和set 簡化成對屬性的的獲取和設定 同時也能把set 和get 簡化成 裝飾器 屬性 無需定義get score 和set score class mystudent object property 對score進行讀操作 def score self return self.sc...
C 基礎語法 特性(3) 物件導向之特殊成員
構造和析構呼叫順序為 基類 父類 建構函式 成員類構造 本類構造 基類構造與繼承順序有關 成員類構造與定義順序有關 本類析構 被包含類析構 基類析構函式 class 類名 類名 參數列 成員1 引數 指標成員2 new型別 型別轉換建構函式 類名 乙個形參 複製建構函式,有2種 一般使用const版...
iOS OC 物件導向語法
2 分類 類別 category 允許以模組的方式向現有類定義新增新的方法 預設不能新增例項變數 擴充套件自己或他人以前實現的類,使它適合自己的需要。3 類的擴充套件 有一種特殊的情況是建立乙個未命名的分類,並且括號 之間不指定名字。4 抽象類 有時建立類只是為了更容易建立子類。因此,這些類名為抽象...