Python面向對象前戲
對python來說,可以完全使用函數式編程來完成,也可以用面向對象編程來完成,Java只能用面向對象。
面向對象:
僅僅是一個別名
def foo(name,age,gender,content):
print(name,age,gender,content)
foo(小明,10歲,男,上山去砍柴)
foo(小明,10歲,男,開車去東北)
class bar:
def foo(self,name,age,gender,content):
print(name,age,gender,content)
obj=bar()
obj.foo(小明,10歲,男,上山去砍柴)
obj.foo(小明,10歲,男,開車去東北)
面向對象過程:
一.定義:
函數:
def 函數名(參數)
面向對象:
class 類名:
def 方法名(self,args)
以後類裏面有方法,第一個參數必須寫self
二.執行
函數:
函數名(參數)
面向對象:
o= 類名() 創建中間人o,叫對象或者實例
o.方法名()
class first_class():
def info(self):
print("ok!")
return True
o=first_class()
o.info()
print(o.info())
三.self是什麼意思
s1="123"等同於s1=str("123") str本身就是一個class
self 等於當前執行對象
class sec_class():
def info(self,args):
print(self,args)
obj1=sec_class()
obj2=sec_class()
print(obj1)
# <__main__.sec_class object at 0x000000AF402EAAC8>
print(obj1.info("haha"))
# <__main__.sec_class object at 0x000000AF402EAAC8> haha
# None
print(obj2)
# <__main__.sec_class object at 0x00000065B76BAA20>
print(obj2.info("wawa"))
# <__main__.sec_class object at 0x00000065B76BAA20> wawa
# None
對象裏面存東西,能不能進入方法中,能!
class third_class():
def info(self,args):
print(self,self.name,args)
obj3=third_class()
obj3.name="jiaxin"
print(obj3.info("kaka3"))
# <__main__.third_class object at 0x0000004EB372AC88> jiaxin kaka3