class Person(): #聲明一個類 contry = 'CN' #靜態屬性,類屬性 def __init__(self,*args): #初始化方法,調用類時觸發方法,調用以前,python幫咱們建立了一個空對象self self.name = args[0] #給self的屬性賦值 self.age = args[1] def walk(self,n): #方法,必須傳self參數,且必須寫在第一個,後面還能夠有其餘參數 print(self.contry) #能夠調用靜態屬性 print('%s走啊走,走了%d步'%(self.name,n)) p = Person('jcc',18) #定義一個對象p p.walk(9) #對象能夠直接調用方法 Person.walk(p,7) #類能夠調用方法,必須傳入一個對象 print(p.name) #對象能夠調用對象屬性 print(p.contry) #對象能夠調用靜態屬性 print(Person.contry) #類能夠調用靜態屬性 # print(Person.name) #類不能夠調用對象屬性 print(Person.__dict__) #查看類的全部屬性和方法 print(p.__dict__) #查看對象中的全部屬性 p.name = 'tff' #對象屬性能夠修改 Person.contry = 'JP' #修改靜態屬性的值 p.contry = 'cn' #並無影響靜態屬性,只是爲對象又添加了一個contry屬性
關於可變類型的類屬性python
class Person(): ex = [] def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex def do(self,dosomething): print('%s,%s,%s,%s'%(self.name,self.age,self.sex,dosomething)) p1 = Person('小張',18,'男') p2 = Person('小王',20,'男') Person.ex = ['judy'] p1.ex[0] = 'elina' print(p2.ex) print(Person.ex) p1.ex = 'elina' print(p2.ex) print(Person.ex) # 對象和類是單向鏈接
....待續ide