Python-类

类是由一系列属性和方法组成

对象的创建就是类实例化的过程

三个特性:

1.对象的句柄,区分不同的对象

2.属性:

共有属性

  类属性(共有的属性分离出来):它属于类,也属于对象,建议使用类调用

  实例属性:它只属于对象

  局部变量

私有属性

3.方法

构造函数:一个类,不管是否写了构造函数,它都是有构造函数的

     一个类,可以有多个构造函数,建议一个类只有一个构造函数

  1.初始化属性

析构函数:对象实例化——>构造函数——>对象调用方法——>代码跳转到具体的方法——>执行方法的代码块——>析构函数

特性方法:

class Person(object):
@property
def getUserID(self):
pass
per = Person()
per.getUserID


'''
静态方法:直接使用类名来进行调用,它属于类
对象也可以调用静态方法,但是一般不建议这样做
'''
class Person(object):
@staticmethod
def conn():
pass
Person.conn()

'''
类方法:直接使用类来进行调用,属于类
'''
class Person(object):
@classmethod
def conn(cls):
pass



属于类:类属性、静态方法、类方法
属于对象:实例属性、普通方法、特性方法
'''类属性的继承'''
class Person(object):
china = u'地球'
class UsaPerson(Person):
pass
per = UsaPerson()
per.china


'''实例属性的继承和继承的两种写法'''
class Fruit(object):
def __init__(self,name):
self.name = name
class Apple(Fruit):
def __init__(self,name,brand,color):
Fruit.__init__(self,name)或者 super(Apple,self).__init__(name)
self.brand= brand
self.color = color

def info(self):
print u"名称:",self.name + u"品牌:",self.brand + u'颜色:',self.color
apple = Apple(u'苹果',u'品牌',u'红色')
apple.info()


class Fruit(object):
def __init__(self,name):
self.name = name
'''子类由于业务的需求,不需要继承父类的实例属性'''
class Apple(Fruit):
def __init__(self,brand,color):

self.brand= brand
self.color = color

def info(self):
print u"品牌:",self.brand + u'颜色:',self.color
apple = Apple(u'品牌',u'红色')
apple.info()

'''方法的继承'''
class Fruit(object):
def eat(self):
print u'水果可以吃的'
class Apple(Fruit):
pass

apple = Apple()
apple.eat()


子类为什么重写父类的方法:子类有自己的特性
当子类重写了父类的方法,对子类进行实例化后,子类调用的方法(父类、子类都存在),执行的方法是子类的方法
class Fruit(object):
def eat(self):
print u'水果可以吃的'
class Apple(Fruit):
def __init__(self,color):
self.color = color
def eat(self):
print u'颜色是'+self.color +u'的时候可以吃'

apple = Apple(u'红色')
apple.eat()



 

  

原文地址:https://www.cnblogs.com/hyzhang/p/10760591.html