面向对象

面向对象

  也是一种编程思想

  核心是对象

  什么是对象:对象是特征和行为的结合体

  

  面向对象编程:关注的是使用什么样的对象可以完成我的任务

    优势:1.对于指挥者来说 不需要再关心具体步骤

       2.扩展性,一个单独的个体的特征或行为发生变化时 不会影响到别人

    缺点:1.程序的复杂度变高,你得需要设计这个些对象,注意要避免过度设计的问题

       2.程序的执行结果可控性低

类与对象

  类就是分类 类型的意思

  定义:一堆具备相同特征和行为的事物的抽象概念,不实际存在

  

  类的作用:用于描述该类的对象具备什么样的特征和行为


  语法:class关键字 类名

  类名规范 大写开头 驼峰命名法

  

  在定义阶段

  只要包含该类的py被执行 就会做两件事情

  1.创建类的名称空间

  2.执行代码 将产生的名称放入名称空间

  

     
class Student:
    school='Oldboy'
    name= 'xia'
    age = 19

    def func(a):#通过函数来描述该类对象的行为
        print('hello')

#使用类中的属性
print(Student.__dict__)
print(Student.name)

#使用类中的函数
print(Student.func)

#使用类直接调用类中函数时,与普通函数没有区别 self仅仅是一个位置函数
Student.func(10)
View Code

对象的使用

class Student:
    school = '复旦大学'
    
    #创建对象
    #语法:在类名后加括号 与调用函数写法相同
stu = Student()

#修改属性的值
stu.school = '北大'
print(stu.school)

增加属性
stu.number = '1000'
print(stu.number)

#删除属性
del stu.number

#对象与类的名称空间是独立的
#对象的属性查找顺序
对象的名称空间->类的名称空间
View Code

__init__函数

  __init__称之为初始化函数 它会在创建对象的时候自动执行

  创建对象时

  1.创建一个空对象

  2.执行__init__函数 并且自动传入了这个对象

   作用就是为对象的属性赋予初始值
class Dog:
    def__init__(self,name,age,color):
    self.name=name
    self.age=age
    self.color=color

dog1 = Dog('二黑',18,'黑色')
print(dog1.__dict__)
View Code
强调
1.使用场景 需要为每个对象定制不同的属性值
2.__init__在创建对象后自动执行
3.第一个self参数 指的是这个对象本身 不需要手动传值

绑定方法

绑定方式是对象与类中的某个函数的绑定关系

class Person
    country = 'China'
    
    def__init__(self,name,age,gender):
        self.name = name
        self.age =age
        self.gender = gender
    

    def sleep(self);
        print('sleeping')

p1=Person('xia','19','male')

类调用
Person.sleep(10)
对象调用
p1.sleep()

对于类而言 sleep就是一个普通函数
对对象而言 sleep是一个绑定方法
View Code
原文地址:https://www.cnblogs.com/xiamenghan/p/9832063.html