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 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...