面向对象

1,类的概念:具有相同特征的一类事物(人,狗,老虎).

  • 对象/实例的概念:具体类的表现,具体的实实在在的一个实例(类的具体化,对象具有类的属性)
  • 实例化:类----->对象的过程
  • 面向对象的程序设计的核心是对象,面向对象变成可以使程序维护和扩展把爱你的简单,并且可以大大提高程序开发效率,另外,基于面向对象的程序可以使人更加容易理解你的代码逻辑,从而使团队开发变得更从容.

2,类的声明

  • class Person:.................定义一个人类(class)后边的字母手字母必须大写(固定格式)
  • 列如:class Person:
  • #类体:在类声明的里边(类似于函数名里边的函数体)叫做类体,类体有以下两部分构成:1>变量部分,如下<1>部分,2>方法函数部分,如下<2>部分所示.
class Person:
    mind = "有思想的"  # <1>部分的变量函数又叫(静态变量,静态字段)
    animal = "高级动物"  # 
    faith = "有信仰"
    
#    def __init__(self):  # <2>方法(函数)部分也叫(动态变量)
#       print(self)
#        print(666)
    
    def __init___(self, name, age, sex, hobby):
        self.name = name
        self.age = age
        self.sex = sex
        self.hobby = hobby
        
    def work(self):
        print("人类都会工作...")
        
    def shop(self):
        print("人类都会消费...")

2.1>从类名的角度,操作类体中的静态变量(静态字段)

  • 2.1.1>类名.__dict__是查找类体中查询类中所有的内容,(只能进行查找,不能进行增,删,改)如下图所示:
    • print(Person.__dict__)

  • 2.1.2>通过万能的(.)来实现对静态变量的操作(增加)
    • Person.skill = "使用工具"
    • print(Person.__dict__)

  • 2.1.3>通过万能的(.)来实现对静态变量的操作(删除)
    • del Person.faith
    • print(Person.__dict__)

  • 2.1.4>通过万能的(.)来实现对静态变量的操作(修改)
    • Person.anamal = "有时候也比较笨"
    • print(Person.anamal)...............此时打印的结果是"有时候也比较笨"
    • print(Person.__dict__)

  • 2.1.5>通过万能的(.)来实现对静态变量的操作(查找)
    • print(Person.mind)..............................................................此时打印的结果是:"有思想的" 

3,从对象的角度对静态变量(静态字段)和方法(函数)的操作

  • 3.1>从类转化为对象(类名+()的过程:实例化的过程(创建一个对象的过程)) Person()是实例化对象
    • ret = Person()
  • print(ret)........,,,,此时打印的是

  • 当类名+() 就会产生一个对象 只要一产生对象就会自动执行__init__方法(__init__里边的参数只有(self)的时候)
  • 3.2>从对象的角度对静态变量和人动态方法去操作
    • 3.2.1>操作对象中的静态变量
      • ret= Person("name",58,"不详","烫头")............................当有参数的时候def __init__(self)不能出现
      • print(ret)

      • print(ret.__dict__)

    • 3.2.2对象对静态变量操作(查找)  
      • print(ret.name)....................................此时打印结果是:333    alex
    • 3.2.3对象对静态变量操作(增加)
      • ret.hight = 175
      • print(ret.ret)........................................此时打印结果是:333     175
      • print(ret.__dict__)......此时打印结果是:333   {'name': 'alex', 'age': 58, 'sex': '不详', 'hobby': '烫头', 'hight': 175}
    • 3.2.2对象对静态变量操作(删除)
      • del ret.name.....................................这是删除name这个键值对
      • print(ret.__dict__)..............................此时打印结果是:333    {'age': 58, 'sex': '不详', 'hobby': '烫头'}
    • 3.2.2对象对静态变量操作(修改)
      • ret.name = "太白"...............................把name = "alex"改成  name = "太白"
      • print(ret.__dict__)............此时打印的结果是:333   {'name': '太白', 'age': 58, 'sex': '不详', 'hobby': '烫头'} 
  • 3.3 >对象调用类体中的方法   (据太白说,工作中,通过对象执行类中的方法,而不是通过类名)
    • 3.3.1>调用类体中的方法(函数)
      • ret.work().................此时打印的结果是:333    人类都会工作...(直接用对象调用就好了)
    • 3.3.2对象调用类体中的方法(函数)
class Person:

    def __init__(self, name, age, sex, hobby):
        self.name = name
        self.age = age
        self.sex = sex
        self.hobby = hobby

    def work(self):
        print("%s都会工作" % self.name)
super = Person("wusir", 36, "", "抽烟")
super.work()  # wusir都会工作

4,当创造一个对象时:

  • 4.1>类名+()产生一个实例(对象,对象空间)
  • 4.2>自动执行类中的__init__方法,将对象空间传给__init__的self参数
  • 4.3>给对象封装相应的属性
 
原文地址:https://www.cnblogs.com/ljc-0923/p/9378714.html