码迷,mamicode.com
首页 > 编程语言 > 详细

python学习 初识面向对象

时间:2017-09-14 16:31:19      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:class   静态   类方法   视角   属性   init   col   实例化   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)
静态属性  类属性,所有的对象共有的属性,可以直接被类调用
对象属性,只属于某一个对象的,必须在实例化之后用对象调用

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

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

 

python学习 初识面向对象

标签:class   静态   类方法   视角   属性   init   col   实例化   python   

原文地址:http://www.cnblogs.com/gaoshengyue/p/7520743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!