标签:lock ... var 没有 pac 整理 细节 att 2.7
概念之类的去百度一下...
类
属性
实例变量
类变量(默认共享)
私有属性(__var)
方法
构造方法
析构方法或析构函数
私有方法
对象: 实例化一个类之后得到的对象
封装
把一些功能的实现细节不对外暴露
类的初始化(__init__): 就是给对象定义一些自己的特征,不能有返回值
继承
代码的重用
单继承
多继承
2.7的经典类-->深度优先,新式类-->广度优先
3.x 均是广度优先
class Foo()
多态
接口重用,一种接口,多种实现
高级属性:
静态方法
与类无关,不能访问类里的任何属性和方法
类方法
只能访问类变量
属性@property
把一个方法变成一个静态属性
反射
getattr(obj,str)
setattr(obj,str,val)
hasattr(obj,str)
ff对象
特征:
name = ‘ff‘
sex = famale
school = ‘qh‘
技能:
def talk(self):
print(‘很炫‘)
def run(self):
print(‘is running‘)
jm对象
特征:
name = ‘jm‘
sex = male
school = ‘qh‘
技能:
def talk(self):
print(‘is talking‘)
def run(self):
print(‘is running‘)
总结类(学 python 的人)
class study_person:
共同的特征
school = ‘qh‘
共同的技能
def talk(self):
print(‘is talking‘)
def run(self):
print(‘is running‘)
class Sutdent:
school = ‘qh‘ #数据属性 也就是类的变量,类下面的方法的共同的属性
def __init__(self,name,sex): #函数属性
self.name = name
self.sex = sex
def talk(self):
print(‘is talking‘)
def walk(self):
print(‘is running‘)
ff = Study_person(‘ff‘,‘famale‘)
mm = Study_person(‘mm‘,‘male‘)
...例子太多,先不写了
ff = Student(‘ff‘,‘famale‘)
jm = Student(‘jm‘,‘male‘)
数据属性
print(类名.__dict__)
print(Student.school)
#属性修改
Student.school = ‘bd‘
#增
Student.xx = ‘666‘
#删
del Student.xx
函数属性
print(Student.talk)
print(Student.walk)
对象本身并没有函数属性,只存放了对象自己特有的特征,它的特征在类里 (school)
class Sutdent:
school = ‘qh‘ #数据属性
def __init__(self,name,sex): #函数属性
self.name = name
self.sex = sex
def talk(self):
print(‘is talking‘)
def walk(self):
print(‘is running‘)
ff = Student(‘ff‘,‘famale‘)
jm = Student(‘jm‘,‘male‘)
print(ff.name)
print(ff.sex)
print(ff.school,id(ff.school))
print(jm.school,id(jm.school))
print(Student.school,id(Student.school))
产生一个类会有一个类的__dict__,产生一个对象会有一个对象的__dict___(实例化一个类后得到的对象),共有特征去类里找.
ff.walk() #ff.walk(ff) #Student.walk(ff) 把调用者当做第一个参数传给walk #会自动传值
标签:lock ... var 没有 pac 整理 细节 att 2.7
原文地址:http://www.cnblogs.com/ugfly/p/7468331.html