python類,了解一下

2021-08-20 14:32:59 字數 3017 閱讀 9404

class

student :

#定義乙個類

myname = 'xiaohong'

__age__ = 18;

def__init__

(self,***):

# 建構函式,初始化資料

self.*** = ***

defhello

(self):

#self 類本身

print('student hello')

defsay(self,name):

print('hi ,%s' %name) # %s是佔位符 %name 是方法傳進來的引數 相當於區域性變數

print('i am '+ self.myname +', is ' + self.***) # %self 相當於全域性變數

print('i am %s , is %s , age %i' %(self.myname, self.***,self.__age__))

defsetage

(self,age):

self.__age__ = age;

s = student('nan')#建立物件使用括號

s.myname = 'asd'; #公共變數 可以修改

print('age:' + str(s.__age__)) # 私有變數 只能訪問 不能修改

s.hello()

s.setage(19)

s.say('xiaohua')

print('*' * 8 )

class

people

(student):

#繼承 繼承具有傳遞性

defhello

(self):

#子類覆蓋父類的方法

print(' i am people')

p = people('nan') # 父類的init 帶有引數,子類建立的時候也需要帶引數,也就是說預設繼承父類的構造方法

print( '使用父類的myname:' + p.myname)

p.setage(15) # 使用父的方法

p.say('xiaoming')

print( " hasattr(p,'myname') 是否有myname : "+ str(hasattr(p,'myname')))

setattr(p,'addr','python') # 設定屬性

print(hasattr(p,'addr'))

print(p.addr)

a = getattr(p,'addr')

print(a)

這是輸出

age:18

student hello

hi ,xiaohua

i am asd, is nan

i am asd , is nan , age 19

********

使用父類的myname:xiaohong

hi ,xiaoming

i am xiaohong, is nan

i am xiaohong , is nan , age 15

hasattr(p,'myname') 是否有myname : true

true

python

python

class

animal

(object):

#新式類 廣度優先

def__init__

(self):

print('this is animal...')

def__del__

(self):

print("talk end")

class

dog(animal):

deftalk

(self):

print('dog ...talk')

class

cat(animal):

deftalk

(self):

print('cat...talk')

d = dog()

d.talk()

c = cat()

c.talk()

'''多型

super(父類,self).init() 呼叫父類的方法

子類的init 可以覆蓋父類的init

靜態方法

類方法'''

defanimal_talk

(obj):

obj.talk()

animal_talk(d)

class

dog(object):

def__init__

(self,name='dog',*args,**kwargs):

self.name = name

print(name)

print(args)

print(kwargs)

print(kwargs.keys(),kwargs.values())

defeat(self,food):

print('%s eating %s ' %(self.name,food))

@staticmethod #靜態方法 不能寫self 跟類沒有聯絡

# @classmethod 類方法

# @property 屬性方法 就是將該方法變成屬性 不能修改,刪除

# 方法名.setter 在可以修改

#方法名.deleter 刪除

defplay

(): print('playing...')

d=dog('xiaoming',18,***='m')

print('---------')

d2=dog()

d2.eat('orange')

print('----')

d3=dog()

d3.play()

python 了解一下 dict

寫在前面 這幾天在寫關於描述器的部落格,在了解描述器的機制的時候,翻了很多部落格裡面都提到了 dict 我想更多的了解一點描述器的機制,所以我得先弄清楚這個 dict 到底是幹啥的。計算機語言學的越久,越是覺得各個知識點之間都有著千絲萬縷的關係。python 中 dict 儲存了該物件的一些屬性 類...

了解一下NTLM

ntlm 在客戶機與伺服器之間提供身份認證的安全包。ntlm 身份驗證協議 是 質詢 應答身份驗證協議,是windows nt 4.0 及其早期版本中用於網路身份驗證的預設協議。windows 2000 中仍然支援該協議,但它不再是預設的。ntlm身份驗證過程 ntlm 是用於 windows nt...

了解一下 display flex

一 display flex flex 是flexuble box的縮寫,意為 彈性盒子 用來為盒狀模型提供最大的靈活性.任何乙個容器都可以指定為flex布局.box 行內元素也可以使用flex布局.box webkit核心的瀏覽器,必須加上 webkit box 注意為父級設計flex布局以後,子...