python学习-对象、类

来源:互联网 发布:elsevier旗下数据库 编辑:程序博客网 时间:2024/05/29 19:08

对象和类

对象即包含数据(变量,习惯称为特性,attribute),也包含代码(函数,也称为方法)

使用class定义类:

class Person():    def __init__(self,name):    self.name=name

使用Person类创建对象:

hunter = Person(‘Elmer Fudd’)

继承:

从已有类中衍生出新的类,添加或修改部分功能。将原始的类称为父类、超类或基类,将新的类称作孩子类、子类或衍生类。

class Car():    passclass Yugo(Car):    pass

Yugo是Car的子类,定义子类时需要把父类的名字放在子类名字后面的括号里。

覆盖方法:

在子类中,可以覆盖任何父类的方法,包括init()添加新方法:子类可以添加父类中没有的方法。 使用super从父类得到帮助:通过super()方法获取父类Person的定义。super().__init(name) 使用属性对特性进行访问:一些私有属性、方法,无法从对象外部直接访问,需要编写getter和setter方法对私有特性进行读写操作。 使用名称重整保护私有特性:由连续的两个下划线开头(

方法的类型:

实例方法(instance method):以self作为第一个参数的方法。 类方法(class method):用前缀修饰符@classmethod指定的方法,对类作出的任何改变会对它的所有实例对象产生影响。类方法的第一参数是类本身,这个参数常被写作cls。 静态方法(static method):用@staticmethod修饰,它即不需要self参数也不需要class参数。

class A()    count = 0    def __init__(self)        A.count+=1    def exclaim(self):        print(“I’m an A!”)    @classmethod    def kids(cls)        print(“A has”, cls.count,”little objects.”)easy_a = A()breezy_a = A()wheezy_a = A()A.kids()A has 3 little objects.

上面的代码中,我们使用的是A.count(类特性),而不是self.count(可能是对象的特性)。在kids()方法中,我们使用的是cls.count,它与A.count的作用一样。

特殊方法(special method):

有时也被称作魔术方法(magic method),这些特殊方法的名称以双下划线(__)开头和结束。

组合(composition):

聚合(aggregation):

0 0
原创粉丝点击