面向對象初識

面向對象

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屬性
View Code

關於可變類型的類屬性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)

# 對象和類是單向鏈接
View Code

....待續ide

相關文章
相關標籤/搜索