面向对象

Posted sl123

tags:

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


# 面向对象第一个优点: 类是一组相似功能的集合,让我代码的组织结构更加清晰规范化.

# 类,对象.

# 什么是类, 可加油,可直行,可后退,可拐弯,在路上行驶: 汽车.
# 类是具似相同功能和属性的一类实物.
# 什么是对象?
# 对象是类的具体体现,具体到一个.

# 面向对象的第二优点: 上帝的思维,用面向对象设计程序,
# 类是一个公共模板,对象去操作使用这个公共模板(慢慢体会).

# 类的结构:

# class Human:
# """
# 此类是构建一个人类
# """
# # 第一部分: 静态属性,属性,变量,静态字段
# mind = ‘有思想‘
# language = ‘会使用语言‘
# shape_list = [‘四肢‘,‘五官‘,‘头‘]
#
# # 第二部分: 动态属性 方法 函数
# def work(self):
# print(‘人类都会工作‘)
#
# def eat(self):
# print(‘人类都需要吃饭‘)

# 如何使用?
# 类名 类的名字
# 一,静态属性
# 1,查看类中的 所有 内容 类名.__dict__
# print(Human.__dict__)
# print(Human.__dict__[‘mind‘])
# Human.__dict__[‘language‘] = None
# print(Human.__dict__[‘language‘])
# 使用 __dict__只是查询类中的所有内容,不能增删改类中的内容,尽量不要查询单个属性.
# 2,万能的点 . 类名. 的方式
# Human.body_hair = ‘体毛‘ # 增
# del Human.language # 删
# Human.mind = ‘无脑的‘ # 改
# print(Human.shape_list) # 查
# print(Human.__dict__)
# 二, 方法.
# 3, 代码中除去(静态方法,类方法)一般不用类名去执行类中的方法.
# print(Human.work)
# Human.work(123) # 一般不用类名执行类中的方法
# 对象
# class Human:
# mind = ‘有思想‘
# language = ‘会使用语言‘
# shape_list = [‘四肢‘,‘五官‘,‘头‘]
# def __init__(self):
# # print(666)
# print(‘__init__中的self:‘,self)
# def work(self):
# print(‘人类都会工作‘)
#
# def eat(self):
# print(‘人类都需要吃饭‘)
# # obj = Human() # 实例化过程,实例化一个对象,产生一个对象.
# # print(obj)
# # obj1 = Human()
# # obj2 = Human()
# # obj3 = Human()
# # print(obj1,obj2,obj3)
#
# # 实例化对象 类名() 在内存中开辟一个空间.
# obj = Human()
# print(‘实例化的对象:‘,obj)

# def func(self):
# # print(self)
# self()
# def func1():
# print(666)
# # print(func1)
# func(func1)


# class Human:
# mind = ‘有思想‘
# language = ‘会使用语言‘
# shape_list = [‘四肢‘,‘五官‘,‘头‘]
# def __init__(self):
# # print(666)
# # print(‘__init__中的self:‘,self)
# self.n = ‘alex‘
# self.s = ‘男‘
# def work(self):
# print(‘人类都会工作‘)
#
# def eat(self):
# print(‘人类都需要吃饭‘)
# obj = Human() # 实例化过程,实例化一个对象,产生一个对象.
# # obj.name = ‘alex‘
# # print(Human().__dict__)


class Human:
mind = ‘有思想‘
language = ‘会使用语言‘
shape_list = [‘四肢‘,‘五官‘,‘头‘]
def __init__(self,name,age,sex):
# print(666)
# print(‘__init__中的self:‘,self)
self.n = name
self.s = sex
self.a = age

def work(self):
print(‘人类都会工作‘)

def eat(self):
self.weight = 200
print(‘人类都需要吃饭‘)
# lange = Human(‘兰哥‘,18,‘女‘) # 实例化过程,实例化一个对象,产生一个对象.
# print(lange.__dict__)
‘‘‘
实例化对象(Human())发生三步:
1,在内存中开辟一个对象空间.
2,自动执行__init__方法,并将对象空间传给self.
3,执行__init__的代码,给对象空间封装属性.
‘‘‘
# 对象的角度操作对象,类.
# lange = Human(‘兰哥‘, 18, ‘女‘) # 实例化过程,实例化一个对象,产生一个对象.
# 1,对象查看对象空间的所有属性.
# print(lange.__dict__)
# 不建议用__dict__增删改对象的属性
# lange.__dict__[‘n‘] = ‘太白‘
# del lange.__dict__[‘n‘]
# 2,对象操作对象空间的属性. 万能的点 .
# lange.height = 180 # 增
# del lange.n # 删
# lange.s = ‘男‘
# print(lange.a)
# print(lange.__dict__)

# print(lange.__dict__)
# 3,对象查看类中的静态属性,只能查看!!!
# print(lange.mind)
# lange.mind = ‘无脑‘ # 给对象空间添加一个属性 mind = ‘无脑‘
# print(lange.mind)
# print(Human.mind)

# 4 ,对象调用类中的方法.
cockroach = Human(‘小强‘,27,‘laddyboy‘)
# print(cockroach.eat())
# print(cockroach.__dict__)
# print(cockroach)
# cockroach.eat()
# print(cockroach.__dict__)
# 只要对象执行类中的方法,就会将对象空间自动创给方法的第一个参数 self

# self 类中的所有方法(类方法,静态方法)的第一个参数,都会默认接0受对象空间,所以为了方便,区分第一个参数约定俗成成为self.

# 一个类可以实例化多个对象

class Human:
mind = ‘有思想‘
language = ‘会使用语言‘
shape_list = [‘四肢‘,‘五官‘,‘头‘]
def __init__(self,name,age,sex):
# print(666)
# print(‘__init__中的self:‘,self)
self.n = name
self.s = sex
self.a = age

def work(self):
print(‘人类都会工作‘)

def eat(self):
self.weight = 200
print(‘人类都需要吃饭‘)
obj1 = Human(‘小强‘,27,‘男‘)
obj2 = Human(‘静哥‘,18,‘女‘)
obj3 = Human(‘龙哥‘,18,‘男‘)
print(obj1.__dict__)
print(obj2.__dict__)
print(obj3.__dict__)





















































































































































































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

224 面向对象编程介绍,面向过程与面向对象

面向对象-面向对象和面向过程的区别

面向对象分析与设计面向对象设计包括哪些内容

面向对象

面向过程面向对象及面向对象的三大特征

Python面向对象学习 1 (什么是面向对象,面向对象的应用场景)