对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 Trueo=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# Noneprint(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