zoukankan      html  css  js  c++  java
  • python--初识面向对象

    面向对象

    面向对象思想

    对象就是一个实实在在的可以准确描述出来的实体
    面向对象的编程是一种上帝视角的切换
       之前使用的面向过程的编程是面向结果去编程,一个流水线
       下来有固定的结果。
       面向过程的编程好想,缺点是可扩展性差,容易引起代码的安全问题
       面向对象
     类:具有相同属性和方法的一类事物
     对象:具有具体的属性的事物
     class  类名:   不写括号  定义一个类  里面写一个属性
     类名首字母要大写

    class Person:
         role='person'
    print(Person.role)
    #类取值↑
    class Person:
         role='person'
      def attack(self)
         print('attact')
    print(Person.role)

    在类里面方法本质上都是函数,拥有一个必须传的参数self  参数叫别的也行
    实例化一个对象

    alex=Person()    #创造了一个对象
    alex.attack()    #当你用一个对象去调用他的方法的时候,自动的传一个参数,这个参数就是对象本身
    egon=Person()
    egon.attack()    #同上

    都可以取值print   self哪个对象取值他就是跟谁

    def __init__(self,name,sex,aggr,blood) 必须双下划綫init
        self.name=name
     self.sex=sex
     self.aggr=aggr
     self.blood=blood

    与字典定义差不多,不过语法不同self必须用
    self此时就相当于一个字典

    alex=Person(‘alex','male',250,20000)  #向上面__init__里面传参数要实例化时候传
    alex.name    #就可以拿到类中alex   name的数据
    alex.attack()

    类下面的方法也可以用def __init__中的数据,因为已经创建过了
    self就是对象本身,类中用self调用数据

    class Dog:
        def __init__(self,a,b,c,d):     对象属性
            self.name=a
            self.sex = b
            self.aggr = c
            self.blood = d
        def attack(self):
            print('%s打人了'%self.name)
    egon=Dog('egon','man',500,90000)
    egon.attack()
    
    class Person:
        role='person'      静态属性
    print(Person.role)

    静态属性  类属性,所有的对象共有的属性,可以直接被类调用
    对象属性,只属于某一个对象的,必须在实例化之后用对象调用

    面向对象在什么时候用:需要反复传递相同的参数给一些函数的时候

    类名可以调用类属性  可以查看类方法但是不能调用类方法
    对象名可以调用对象属性,可以调用类属性
    对象名.方法()

  • 相关阅读:
    929. 独特的电子邮件地址
    [工具.tcp]测试TCP通讯的网络延迟
    [技巧.Dotnet]轻松实现“强制.net程序以管理员身份运行”。
    [问题记录.VisualStudio]VS2013无法新增和打开项目
    [问题记录.VisualStudio]TFS项目映射问题解决
    [问题记录.dotnet]取网卡信息报错"找不到"-WMI
    模型驱动的数学原理
    剑指OFFER 旋转数组的最小数字
    剑指OFFER 用两个栈实现队列
    剑指OFFER 按之字形顺序打印二叉树
  • 原文地址:https://www.cnblogs.com/gaoshengyue/p/7520743.html
Copyright © 2011-2022 走看看