标签: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)
静态属性 类属性,所有的对象共有的属性,可以直接被类调用
对象属性,只属于某一个对象的,必须在实例化之后用对象调用
面向对象在什么时候用:需要反复传递相同的参数给一些函数的时候
类名可以调用类属性 可以查看类方法但是不能调用类方法
对象名可以调用对象属性,可以调用类属性
对象名.方法()
标签:class 静态 类方法 视角 属性 init col 实例化 python
原文地址:http://www.cnblogs.com/gaoshengyue/p/7520743.html