Python面向对象(初识)

# 面向过程 vs 函数
# 面向过程编程
# s1 = 'fdjskfldjsfl'
# count = 0
# for i in s1:
#  count += 1
# print(count)
# l1 = [i for i in range(100)]
# count = 0
# for i in l1:
#  count += 1
# print(count)
#1,重复代码多
#2,可读性差.
# 函数
# def func(obj):
#  count = 0
#  for i in obj:
#   count += 1
#  print(count)
# func('fdkslfjdkls')
# func([i for i in range(100)])
# 函数式编程 vs 面向对象编程
# def login():
#  pass
#
# def register():
#  pass
#
# def check_account():
#  pass
#
# def save():
#  pass
#
# def transfer():
#  pass
#
# def check_flow_account():
#  pass
#
#
#
# def shopping():
#  pass
#
# def check_paid_goods():
#  pass
#
# def check_unpaid_goods():
#  pass
# 面向对象
class Auth:
 def login(self):
  pass
 def register(self):
  pass
 def check_username(self):
  pass
 def check_password(self):
  pass
class Account:
 def check_account():
  pass
 def save():
  pass
 def transfer():
  pass
 def check_flow_account():
  pass

class Shopping:
 def shopping_car():
  pass
 def check_paid_goods():
  pass
 def check_unpaid_goods():
  pass
# 面向对象第一个优点: 类是一组相似功能的集合,让我代码的组织结构更加清晰规范化.
# 类,对象.
# 什么是类, 可加油,可直行,可后退,可拐弯,在路上行驶: 汽车.
 # 类是具似相同功能和属性的一类实物.
# 什么是对象?
# 对象是类的具体体现,具体到一个.
# 面向对象的第二优点: 上帝的思维,用面向对象设计程序,
# 类是一个公共模板,对象去操作使用这个公共模板(慢慢体会).
# 类的结构:
# 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__)
原文地址:https://www.cnblogs.com/YZL2333/p/10311468.html