python 物件導向(高階篇)

2021-08-09 05:20:48 字數 1767 閱讀 9191

文章摘自:

類的成員可以分為三大類:字段、方法和屬性

方法:普通方法,靜態方法,類方法。

屬性:普通屬性

字段包括:普通欄位和靜態字段,他們在定義和使用中有所區別,而最本質的區別是記憶體中儲存的位置不同,

class student:

school = 'python學院'

def __init__(self, name, age):

self.name = name

self.age = age

def getname(self):

print (self.name)

print (self.age)

def hello(self, name):

print ('i am %s' %name);

s = student('劉備',20)

print(s.getname())

print(student.school)

方法包括:普通方法、靜態方法和類方法,三種方法在記憶體中都歸屬於類

,區別在於呼叫方式不同。

class student:

school = 'python學院'

def __init__(self, name, age):

self.name = name

self.age = age

def getname(self):

print (self.name)

print (self.age)

def hello(self, name):

print ('i am %s' %name);

#類方法

@classmethod

def exam(cls):

print ('類方法')

#靜態方法

@staticmethod

def exam_static():

print('靜態方法')

s = student('劉備',20)

s.getname()

#print(student.school)

#呼叫類方法

student.exam()

#呼叫靜態方法

student.exam_static()

相同點:對於所有的方法而言,均屬於類(非物件)中,所以,在記憶體中也只儲存乙份。

不同點:方法呼叫者不同、呼叫方法時自動傳入的引數不同。

三、屬性

class student:

#普通方法

def exam(self,name,grade):

self.name=name

self.grade=grade

print ('普通方法')

#定義屬性

@property

def askquestion(self):

return '老師,我不知道'

stu= student();

stu.exam('zhagnsan',99);

print(stu.grade,stu.name)

#呼叫屬性

question=stu.askquestion

print(question)

由屬性的定義和呼叫要注意一下幾點:

2、屬性的兩種定義方式

屬性的定義有兩種方式:

物件導向 高階

json方式的物件導向 json 把方法包在json裡 json物件導向 有人管他叫 命名空間 在公司裡 把同一類 的方法包在一起 拖拽和繼承 物件導向的拖拽 改寫原有的拖拽 繼承 asdf 拖拽 instanceof 檢視物件是某個類的例項 使用繼承 限制範圍的拖拽類 建構函式的偽裝 屬性的繼承 ...

物件導向高階

public class person public void print public class student extends person 重寫了父類方法 public void print public class demo public class demo 1.不能new這個類,只能靠...

物件導向高階

私有屬性,不能被子類繼承,在屬性的前面加上 就變為了私有屬性 私有方法,不能被子類繼承,在方法的前面加上 就變為了私有方法 只在前面加,後面不加,一般前後都有 的,屬於類當中自帶的方法或屬性 class class test1 str1 a 私有屬性 def init self pass def m...