对象

对象

创建对象

file: createobject.py

__metaclass__ = type #确定使用新式的类 在Python3.0中是不需要这段的

class AObject:
    def setName(self,name):
        self.name = name
    def getName(self):
        return self.name

    def sayHello(self):
        print 'Hello','%s' % self.name

a = new AObject()
a.setName('CoderInfo')
a.sayHello() # result: Hello CoderInfo

私有化

file: privatedemo.py

__metaclass__

class Person:
    def __sayHello(self):
        print 'Hello'

    def sayHi(self):
        self.__sayHello()

p = Person()
p.__sayHello()  # result: program is crashed
p.sayHi() # result: Hello

类的继承

file: extendsclass.py

class Father:
    def sayHello(self):
        print 'Hello'

class Sun(Father):
    def sayHi(self):
        print 'Hi'

s = Sun()

s.sayHello() # result: Hello  输入了父类的方法内容

print issubclass(Sun,Father) # result: True  判断第一个类是否是第二个参数的子类
print issubclass(Father,Sun) # result: False

print isinstance(s,Sun) # result: True  判断一个对象是否是一个类的实例
print isinstance(s,Father) # result: True
print isinstance(s,type('')) # result: False

多重继承

Python是支持多继承,这点与java不一样,先继承的类会覆盖后继成类中两个类相同名称的方法

  • 不过呢,由于多重继承使用起来弊端很多,要求技术能力也比较高,所以如果一个团队整体能力不是非常的强的情况下,建议避免使用


class A:
    def sayHello(self):
        print 'Hello'

class B:
    def sayHello(self):
        print 'Hi'

class C(B,A):
    pass

# Test

c = C()
c.sayHello() # result: Hi





你可能感兴趣的:(对象)