18 物件導向之語法(3)

2022-05-12 06:23:48 字數 1289 閱讀 9887

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 抽象類 有時建立類只是為了更容易建立子類。因此,這些類名為抽象...