python物件導向中繫結方法與型別

2021-08-20 23:55:20 字數 1443 閱讀 9903

class student:

school = 'university of technology'

count = 0

def __init__(self, x, y):

self.name = x

self.age = age

student.count += 1

def choose_couse(self):

print('there is choosing course')

上一節我們已經知道類命名空間中定義的資料屬性和函式屬性都是共享給所有物件用的

物件命名空間中定義的只有資料屬性,而且是物件所獨有的屬性

stu1 = student('zhangsan',18)

stu2 = student('lisi', 19 )

print(stu1.name)

print(stu1.school)

我們之前就已經知道類中定義的函式是類的函式屬性,類可以使用,但使用的就是乙個普通的函式而已,意味著使用時需要完全遵循函式的引數原則,該傳幾個值就傳幾個

print(student.choose_course)

student.choose_course(124563)

那麼我們一直沒有提及的是,類中定義的函式是否也可以共享給物件使用?是的,類中定義的函式可以共享給所有物件,而且是繫結給物件使用的

繫結的效果就為:繫結給誰,就應該由誰來呼叫,誰來呼叫就會將誰作為第乙個引數自動傳入

print(id(stu1.choose_course))

print(id(stu2.choose_course))

print(id(stu1.school))

print(id(stu2.school))

補充:類中定義的函式,類確實可以使用,但其實類定義的函式大多情況下都是繫結給物件用的,所以在類中定義的函式都應該自帶乙個引數self

在python3中,統一了類與型別的概念,類就是型別

class student:

school = 'university of technology'

count = 0

def __init__(self, x, y):  # 會在呼叫類時自動觸發

self.name = x

self.age = age

student.count += 1

def choose_couse(self):

print('%s  choosing course'%self.name)

stu1 = student('zhangsan' , 22)

stu1.choose_course(1)  #等價於student.choose_course(stu1, 1)

我們以列表為例,深化類即型別這一概念

l=[1,2,3] # 等價於l=list([1,2,3])

print(type(l))

python 物件導向(繫結方法與非繫結方法)

一 繫結方法 繫結給誰就應該由誰來呼叫,誰來呼叫就會將誰當做第乙個引數傳入 1.繫結給物件的方法 類中定義的函式預設就是繫結給物件的 二 非繫結方法 即不與類繫結,又不與物件繫結,意味著物件和類都可以來呼叫,無論誰來呼叫都是乙個普通函式,沒有自動傳值的效果 import settings class...

Python物件導向 方法

方法名稱 樣式可被誰呼叫 可呼叫誰 用處類方法 方法的第乙個引數是類 類 例項 類變數修改類屬性 靜態方法 方法不需要任何固定的引數 類 例項 自身的變數 只能做內部的處理 類中函式 就是在類裡面寫了個函式 不可外部呼叫 自身的變數 內部私有化部分 例項方法 就是有self接收例項的這種方法 cla...

python中 物件導向

1,物件導向 定義 與面向過程對比 官方定義 程式語言 2,物件導向語法 class 類名 內容3,例項 定義類 class person 行為通過方法體現 吃飯def eat self print 紅燒雞腿我喜歡吃 睡覺def sleep self print 睡覺也是一種生活態度 定義物件 li...