函数编程VS面向对象编程
#第二次
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def foo(self, content):
print(self.name,self.age,self.gender,content)
obj = Bar()
obj.name = '小明'
obj.age = 10
obj.gender = '男'
obj.foo('上山去砍柴')
obj.foo('开车去东北')
obj.foo('最爱大保健')
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
小明 10 男 上山去砍柴
小明 10 男 开车去东北
小明 10 男 最爱大保健
Process finished with exit code 0
#封装
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def add(self,content):
print(self.name,self.age,self.gender,content)
def delete(self,content):
print(self.name,self.age,self.gender,content)
def update(self,content):
print(self.name,self.age,self.gender,content)
def get(self,content):
print(self.name,self.age,self.gender,content)
obj = Bar()
obj.name = '小明'
obj.age = 10
obj.gender = '男' #中间人封装到对象里面叫封装,把值封装到对象里面
obj.add('上山去砍柴')
obj.delete('开车去东北')
obj.update('最爱大保健')
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
小明 10 男 上山去砍柴
小明 10 男 开车去东北
小明 10 男 最爱大保健
Process finished with exit code 0
#构造方法
特殊作用:
在
obj = 类名()
#创建对象
#通过对象执行类中的一个特殊方法
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def __init__(self): #构造方法,构造方法特性,类名()自动执行构造方法
print('123')
z = Bar()
print(z)
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
123
<__main__.Bar object at 0x7fcd523e73d0>
Process finished with exit code 0
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def __init__(self):
print('123')
def foo(self):
print('456')
z = Bar()
print(z)
z.foo()
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
123
<__main__.Bar object at 0x7f81020603d0>
456
Process finished with exit code 0
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def __init__(self,name,age): #构造方法,self=z,name='alex',age=84
print('123')
self.n = name
self.a = age
def foo(self):
print('456')
z = Bar('smoke',84)
print(z)
z.n = 'smoke'
z.a = 18
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
123
<__main__.Bar object at 0x7fdd008ed3d0>
Process finished with exit code 0
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def foo(self):
print(self.name)
z = Bar()
z.name='smoke'
z.foo()
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
smoke
Process finished with exit code 0
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def __init__(self):
self.name='smoke'
def foo(self):
print(self.name)
z = Bar()
z.foo()
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
smoke
Process finished with exit code 0
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def __init__(self,n1,n2,n3):
self.name1=n1
self.name2=n2
self.name3=n3
self.name4=n3
self.name5=n3
self.name6=n3
def foo(self):
print(self.name1)
z = Bar(1,2,3)
print(z.name1)
z.foo()
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
1
1
Process finished with exit code 0
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def __init__(self,n1,n2,n3):
self.name1=n1
self.name2=n2
self.name3=n3
self.name4=n3
self.name5=n3
self.name6=n3
def foo(self):
print(self.name1,self.name2,self.name3,self.name4,self.name5,self.name6)
z = Bar(1,2,3)
print(z.name1)
z.foo()
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
1
1 2 3 3 3 3
Process finished with exit code 0
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
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('lihuan',18)
lihuan.show()
hu = Person('cherry',73)
hu.show()
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
lihuan-18
cherry-73
Process finished with exit code 0
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def __init__(self,n,a,g):
self.name = n
self.age = a
self.gender = g
def add(self,content):
print(self.name,self.age,self.gender,content)
def delete(self,content):
print(self.name,self.age,self.gender,content)
def update(self,content):
print(self.name,self.age,self.gender,content)
def get(self,content):
print(self.name,self.age,self.gender,content)
obj = Bar('小明',10,'男')
obj.add('上山去砍柴')
obj.delete('开车去东北')
obj.update('最爱大保健')
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
小明 10 男 上山去砍柴
小明 10 男 开车去东北
小明 10 男 最爱大保健
Process finished with exit code 0
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
# __author:smoke
# file:object_oriented.py
# time:2021/02/19
class Bar:
def __init__(self,name,age,gender):
self.n = name
self.a = age
self.g = gender
self.xue = 'O' #血型,大家有相同血型,固定,不需要传值,直接写死
def add(self,content):
print(self.n,self.a,self.g,self.xue,content)
def delete(self,content):
print(self.n,self.a,self.g,self.xue,content)
def update(self,content):
print(self.n,self.a,self.g,self.xue,content)
def get(self,content):
print(self.n,self.a,self.g,self.xue,content)
obj = Bar('小明',10,'男')
obj.add('上山去砍柴')
obj.delete('开车去东北')
obj.update('最爱大保健')
/usr/bin/python3.8 /home/smoke/PycharmProjects/pythonProject/lean_python/object_oriented.py
小明 10 男 O 上山去砍柴
小明 10 男 O 开车去东北
小明 10 男 O 最爱大保健
Process finished with exit code 0
总结:
1、如何创建类
class 类名:
pass
2、构建方法
构造方法,__init__
obj = 类()
普通方法
obj = 类('xxx')
obj.普通方法名()
3、面向对象三大特性之一:封装
class Bar:
def __init__(self,n,a)
self.name = n
slef.age = a
self.xue = 'o'
b1 = Bar('alex',123)
b2 = Bar('eric',456)
4、使用场景:
如果多个函数中有一些相同参数时,转换成面向对象编程
class DataBaseHelper:
def __init__(self,ip,port,username,pwd):
self.ip = ip
self.port = port
self.username = username
self.pwd = pwd
def add(self,content):
# 利用self中封装的用户名、密码等连接数据库
print('content')
# 关闭数据库连接
def delete(self,content):
print(self.n,self.a,self.g,self.xue,content)
def update(self,content):
print(self.n,self.a,self.g,self.xue,content)
def get(self,content):
print(self.n,self.a,self.g,self.xue,content)
s1 = DataBaseHelper('1.1.1.1',3306,'alex','sb')
浙公网安备 33010602011771号