在python2中的區分:
經典類:
class school:pass
新式類:
class school(object):pass
在python3中以上兩種均為新式類
屬性:
注:類和物件均用點來訪問自己的屬性
資料屬性即變數,類的定義與函式又及其相似,其實可以用函式的作用域來理解類的屬性呼叫
類的資料屬性:
class school:teacher = "老王"
print(school.teacher)
類的函式屬性(一般稱為方法):
class school:teacher = "老王"
def examination(self):
print("%s的班級正在考試"%self)
school.examination("alex")
檢視類屬性:
檢視類屬性的兩種方式:
dir(類名) 查出的是乙個名字列表
類名.__dict__ 查出的是乙個字典,key是屬性名,value是屬性值
#注意:類名加點呼叫自己的屬性實際上就是到屬性字典裡去找東西
classschool:teacher = "老王"
defexamination(self):
print("%s的班級正在考試"%self)
print(dir(school)) #檢視類的屬性
print(school.__dict__) #檢視類的屬性字典
print(school.teacher)#同print(school.__dict__["teacher"]) 呼叫資料屬性
school.examination("alex")#同school.__dict__["examination"]("alex") 呼叫函式屬性
特殊的類屬性:
classschool:"""文件
"""teacher = "老王"
defexamination(self):
print("%s的班級正在考試"%self)
print(school.__name__) #檢視類名
print(school.__doc__) #檢視文件
print(school.__base__) #檢視類的第乙個父類
print(school.__bases__) #檢視類所有父類構成的元組
print(school.__dict__) #檢視類的屬性
print(school.__module__) #檢視類所在哪個模組
print(school.__class__) #例項school對應的類(僅新式類中)
物件是由類例項化而來,例項化結果成為乙個例項或者稱作乙個物件
例項化:
classschool:"""文件
"""teacher = "老王"
defexamination(self):
print("%s的班級正在考試"%self)
school()
#類名加上括號就是例項化(可以理解函式執行的返回值就是乙個例項)
例項屬性:
classschool:"""這是乙個學校類
"""dang = "dang"
#例項化,init函式不可以有返回值,返回值為空
def __init__(self,name,addr,type):
self.mingzi = name #p1.mingzi = name
self.dizhi = addr #p1.dizhi = addr
self.leixing = type#p1.leixing = type
#考試defexamination(self):
print("%s正在考試"%self.mingzi)
#招生defrecruit_students(self):
print("%s正在招生"%self.mingzi)
person = school("oldboy","沙河","私立")
person.examination()
"""1、例項化的過程本質上就是呼叫__init__的執行
2、self就是例項本身=person
3、class會自動幫__init__返回值
4、例項只有資料屬性,print(person.__dict__)
5、例項呼叫函式屬性,實際上呼叫的是類的函式屬性,person.examination()
6、print(person.dang)跟函式作用域一樣,在自己的作用域找不到會去上一層找
7、類有資料屬性和函式屬性,例項只有資料屬性
8、例項呼叫函式屬性.class會幫你把例項本身傳給函式
"""
python類 物件 方法 屬性之類與物件
python 中一切皆為物件,所謂物件 我們自己就是乙個物件,我們玩的電腦就是物件,坐著的椅子就是物件,家裡養的小狗也是乙個物件.我們通過描述屬性 特徵 和行為來描述乙個物件的。比如家裡的小狗,它的顏色,大小,年齡,體重等是它的屬性或特徵。它會汪汪叫,會搖尾巴等是它的行為。我們在描述乙個真實物件 物...
python之類與物件(5)
python的類還有乙個特點,就是可以繼承多個類。但是我們作為測試人員,在實際中很少用到這個多繼承,這裡不就詳細 一直都不詳細,hhhh 寫了。上 1 usr bin python32 coding utf 8 3 time 2018 12 5 13 434 author yosef5 email ...
python打卡練習之類與物件
物件導向程式設計的核心就是類與物件,python也是一門物件導向的程式語言。今天就來練習一下python中的類與物件。python中可以使用class語句定義乙個類 class shape square 0 def init self print shape inited def getsquare...