python中定义类

python定义一个类时,有时候需要(object),有时没有,那么问题来了,什么时候需要,什么时候不需要的。

如下:

# -.- coding:utf-8 -.-
# __author__ = ‘zhengtong‘

class Person:
    """
    不带object
    """
    name = "lihau"

class Animal(object):
    """
    带有object
    """
    name = "jiaojiao"

if __name__ == "__main__":
    x = Person()
    print "Person", dir(x)

y = Animal()
    print "Animal", dir(y)

运行结果如下:

Person [‘__doc__‘, ‘__module__‘, ‘name‘]
Animal [‘__class__‘, ‘__delattr__‘, ‘__dict__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘,

‘__ge__‘, ‘__getattribute__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__le__‘, ‘__lt__‘, ‘__module__‘,

‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__setattr__‘, ‘__sizeof__‘,

‘__str__‘, ‘__subclasshook__‘, ‘__weakref__‘, ‘name‘]

很明显能够看出区别,Person类不继承object对象,只拥有了doc , module 和 自己定义的name变量, 也就是说这个类的命名空间只有三个对象可以操作. 
Animal类继承了object对象,拥有了好多可操作对象,这些都是类中的高级特性。

对于不太了解python类的同学来说,这些高级特性基本上没用处,但是对于那些要着手写框架或者写大型项目的高手来说,这些特性就比较有用了,比如说tornado里面的异常捕获时就有用到class来定位类的名称,还有高度灵活传参数的时候用到dict来完成.

最后需要说清楚的一点, 本文是基于python 2.7.10版本,实际上在python 3 中已经默认加载了object了(即便你没有写上object)。

原文地址:https://www.cnblogs.com/alpqmz/p/9643270.html

时间: 2024-10-10 03:04:43

python中定义类的相关文章

python中定义函数和参数的传递问题

作者:達聞西链接:https://zhuanlan.zhihu.com/p/24162430来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 5.2.4 函数.生成器和类 还是从几个例子看起: def say_hello(): print('Hello!') def greetings(x='Good morning!'): print(x) say_hello() # Hello! greetings() # Good morning! greetings("Wh

Python中的类(上)

在Python中,可以通过class关键字定义自己的类,然后通过自定义的类对象类创建实例对象. 例如,下面创建了一个Student的类,并且实现了这个类的初始化函数"__init__": class Student(object): count = 0 books = [] def __init__(self, name, age): self.name = name self.age = age pass 接下来就通过上面的Student类来看看Python中类的相关内容. 数据属性

python 中的类

python 中的类内容概述类的概念: 类是一组方法与属性的抽象集. 属性 实例变量(每个实例内存中) 类变量(类内存中) 私有属性 __var 方法 构造方法 析构函数(默认就有,代码为空,写了则相当于重构它) 其他方法 对象(object):类的实例(实例化一个类之后得到的对象) 类的特性: 封装: 把一些功能的实现细节不对外暴露 继承: 继承顺序:(先覆盖.再继承.再添加) 继承:代码复用 继承方式: 单继承 多继承 2.7 经典类 深度优先 新式类 广度优先 3.x 均广度优先 多态:

简述Python中的类与对象

Python中的类 类的定义 示例: class Person: country = "China" def __init__(self, name, age): self.name = name self.age = age def speak(self, word): print(word) 其中 country 是类属性,即 Person类 的静态属性,speak() 为 Person类的函数属性,即类的动态属性~ 类的实例化 对上述示例的类进行实例化: >>>

python之定义类创建实例

https://www.cnblogs.com/evablogs/p/6688938.html 类的定义 在Python中,类通过class关键字定义,类名以大写字母开头 1 2 >>>class Person(object):           #所有的类都是从object类继承               pass                 #pass先不做任何处理,先跳过,为了防止语法错误 创建类的属性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 &g

Python中的类和方法使用举例

1.类的属性 成员变量对象的创建创建对象的过程称之为实例化,当一个对象被创建后,包含三个方面的特性对象聚丙属性和方法,句柄用于区分不同的对象,对象的属性和方法,与类中的成员变量和成员函数对应,obj = MyClass()创建类的一个实例,扩号对象,通过对象来调用方法和属性 类的属性 类的属性按使用范围分为公有属性和私有属性类的属性范围,取决于属性的名称,共有属性---在内中和内外都能够调用的属性私有属性---不能在内外贝类以外函数调用定义方式:以""双下划线开始的成员变量就是私有属性

python进阶三(面向对象编程基础)【3-1 python中创建类属型】

python中创建类属性 类是模板,而实例则是根据类创建的对象. 绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份. 定义类属性可以直接在 class 中定义: 1 class Person(object): 2 address = 'Earth' 3 def __init__(self, name): 4 self.na

python进阶三(面向对象编程基础)【3-4 python中定义类方法】

python中定义类方法 和属性类似,方法也分实例方法和类方法. 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身. 要在class中定义类方法,需要这么写: 1 class Person(object): 2 count = 0 3 @classmethod 4 def how_many(cls): 5 return cls.count 6 def __init__(self, name): 7 self.name = name 8 Person.count = P

python进阶三(面向对象编程基础)【3-3 python中定义实例方法】

python中定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用? 虽然私有属性无法从外部访问,但是,从类的内部是可以访问的.除了可以定义实例的属性外,还可以定义实例的方法. 实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的: 1 class Person(object): 2 3 def __init__(self, name): 4 self.__name = name 5