面向对象

Posted yanranran

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象相关的知识,希望对你有一定的参考价值。

面向对象

面向对象初识

1.1 回顾面向过程编程vs函数式编程

# 面向过程编程 测量对象的元素个个数。
s1 = fjdsklafsjda
count = 0
for i in s1:
    count += 1


l1 = [1,2,3,4]
count = 0
for i in l1:
    count += 1

函数式编程

def func(s):
    count = 0
    for i in s:
        count += 1
    return count
func(fdsafdsa)
func([1,2,3,4])

通过对比可知:函数编程较之面向过程编程最明显的两个特点:

1,减少代码的重用性。

2,增强代码的可读性。

 

1.2 函数式编程vs面向对象编程

技术分享图片
# 函数式编程

# auth 认证相关
def login():
    pass

def regisgter():
    pass

# account 账户相关
def func1():
    pass

def func2():
    pass


# 购物车相关
def shopping(username,money):
    pass
def check_paidgoods(username,money):
    pass
def check_unpaidgoods(username,money):
    pass
def save(username,money):
    pass
函数式编程
技术分享图片
class LoginHandler:
    def login(self):
        pass

    def regisgter(self):
        pass

class Account:
    def func1(self):
        pass

    def func2(self):
        pass

class ShoppingCar:
    def shopping(username,money):
        pass
    def check_paidgoods(username,money):
        pass
    def check_unpaidgoods(username,money):
        pass
    def save(username,money):
        pass
面向对象式编程

 

优点:

面向对象编程:是一类相似功能函数的集合,使你的代码更清晰化,更合理化。

再说第二个优点:面向对象,要拥有上帝的视角看问题,类其实就是一个公共模板(厂房),对象就从具体的模板实例化出来(慢慢体会)。

 

1.3类的结构

class Human:
    """
    此类主要是构建人类
    """
    mind = 有思想  # 第一部分:静态属性 属性 静态变量 静态字段
    dic = {}
    l1 = []
    def work(self): # 第二部分:方法 函数 动态属性
        print(人类会工作)
class 是关键字与def用法相同,定义一个类。
Human是此类的类名,类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头。
类的结构从大方向来说就分为两部分:
静态变量。
动态方法。

 

以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器