python之物件導向(類的定義及封裝)

2021-10-04 14:44:00 字數 3560 閱讀 6275

def foo(name, age, gender, content):

print(name, age, gender, content)

第一次定義類:

class bar:

def foo(self, name, age, gender, content):

print(name, age, gender, content)

obj = bar()

obj.foo(小明,10歲,男,上山去砍柴)

obj.foo(小明,10歲, 男,開車去東北)

obj.foo(小明,10歲,男,開車去東北)

類和函式的比較:

一、定義

函式:def + 函式名(引數)

物件導向:

class    =>     名字叫bar類

def      =>       名字叫foo的方法,第乙個引數必須是self

二、執行

函式:函式名(引數)

物件導向:

o = bar()      # 建立中間人(物件、例項)

o.foo()

定義類並執行類中的方法:

class  類名:

def     方法名(self, arg):

pring(arg)

return 1

中間人  =  類名()

ret = 中間人.方法名(1)

print(ret)

self代指呼叫方法的物件(中間人)

class bar():

def foo(self, arg):

print(self, arg)

z1 = bar()

print(z1)

z1.foo(111)

print('*'*20)

z2 = bar()

print(z2)

z2.foo(666)

<__main__.bar object at 0x0000017cafc71ba8>

<__main__.bar object at 0x0000017cafc71ba8> 111

********************

<__main__.bar object at 0x0000017cafc89ef0>

<__main__.bar object at 0x0000017cafc89ef0> 666

class bar():

def foo(self, arg):

print(self, self.name, self.age, self.gender, arg)

z = bar()

z.name = 'alex'

z.age = 84

z.gender = 'zhong'

z.foo(666)

# <__main__.bar object at 0x00000205ffca9ef0> alex 84 zhong 666

z1 = bar()

z1.name = 'eric'

z1.age = 73

z1.gender = 'nv'

z1.foo(666)

# <__main__.bar object at 0x00000200d89f0470> eric 73 nv 666

第二次定義類:

class bar:

def add(self, name, age, gender, content):

print(self.name, self.age, self.gender, content)

def delete(self, name, age, gender, content):

print(self.name, self.age, self.gender, content)

def updates(self, name, age, gender, content):

print(self.name, self.age, self.gender, content)

def get(self, name, age, gender, content):

print(self.name, self.age, self.gender, content)

obj = bar()

# 把公用的引數放到了類裡,這就完成了「封裝」

obj.name = '小明'

obj.age = 10

obj.gender = 『男』

obj.add(上山去砍柴)

obj.delete(開車去東北)

obj.updates(開車去東北)

# 構造方法

特殊作用:在obj = 類名()內部     1、建立物件      2、通過物件執行類中的乙個特殊方法

class bar:

def __init__(self, name, age):

"""構造方法:一般做初始化,即一些公用引數

"""self.name = name

self.age = age

print('123')

def foo(self):

print('456')

z = bar('alex', 84) # 執行bar()內部就自動執行__init__方法

print(z)

print(z.name)

z.foo()

# 123

# <__main__.bar object at 0x000001b1e5cc9ef0>

# alex

# 456

舉個栗子:

class person:

def __init__(self, name, age):

self.n = name

self.a = age

def show(self):

print("%s---%s" % (self.n, self.a))

lihuan = person('李歡', 18)

huxianglin = person('胡香林', 73)

lihuan.show()

huxianglin.show()

對上述「第二次定義的類」進行修改

class bar:

def __init__(self):

self.name = '小明'

self.age = 10

self.gender = '男'

def add(self, content):

pass

def sub(self, content):

pass

def updates(self, content):

pass

def get(self, content):

pass

obj = bar()

obj.add('上山去砍柴')

obj.sub('開車去東北')

obj.updates('開車去東北')

Python之物件導向 類

主要從以下三個方面講述類 1 什麼叫物件導向,為什麼要物件導向?2 python類的三大特性 封裝 繼承 多型。3 類的基本概念。4 類的例子和關鍵點解釋。1.什麼叫物件導向,為什麼要物件導向?將大家共有的特性剝離出來進行抽象的過程就是物件導向,這是 物件導向 最直觀的理解。物件導向 個人理解,類就...

Python之物件導向元類

python之物件導向元類 call方法 1 class people 2def init self,name 3 self.name name4 5def call self,args,kwargs 6print call 7 89 p people george 10print callable...

python之物件導向

類 是乙個特殊的物件,class a 定義的類屬於 類物件 類的例項 obj a 屬於 例項物件 例項屬性 init 定義例項屬性 例項方法 self 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...