学院首页>网络编程>ORACLE>[Oracle]用Oracle和Python武装你的头脑

[Oracle]用Oracle和Python武装你的头脑

作者:Catherine Devlin 来源:Oracle 添加时间:2006-5-26 9:52:55

首先打开要读取的 init_orcl.ora。

>>> initFile = open('init_orcl.ora')

您现在已经打开了该文件并指定了一个变量 initFile 来引用它。(Python 使用一个 = 进行赋值,并使用 == 进行比较,而 PL/SQL 分别使用 := 和 =。)注意,您不必声明 initFile 或指定它的数据类型;作为一种“动态类型”语言,Python 可以自动识别。

我们来看看结果如何。

>>> firstLine = initFile.readline()

>>> firstLine

'FAST_START_MTTR_TARGET=300\n'

其中的 readline 是对象 initFile 中定义的方法。如果您不熟悉面向对象的编程,则对您而言这将是一个全新的语言,而 Python 语言为您了解此概念提供了一个出色的环境。

从 PL/SQL 的使用经历中可以知道,readline 之后不需要圆括号,这是因为您并未向它传递任何参数。但在 Python 中,省略圆括号将导致意外的结果。

>>> firstLine = initFile.readline

>>> firstLine

您实际上并未调用 readline 方法,而是只将一个指针指向它并将其插入到 firstLine 中。这在某些高级编程技术中可能非常有用;例如,您实际上可以从分配给该函数的位置调用该函数。

>>> firstLine()

'SHARED_POOL_SIZE=50331648\n'

但对现在而言,只需记住在调用 Python 函数时必须使用 ()。下面我们向 firstLine 中插入一个全新的字符串以继续操作。

>>> firstLine = initFile.readline()

>>> firstLine

'DB_BLOCK_SIZE=8192\n'

自省

firstLine 结尾的 \n 是一个您并不需要的换行符。如何删除它?尽管 Python 提供了出色的文档,但您也不必参考它 - Python 的自省功能可以帮助您确定如何从提示符下执行正确操作。

在 Python 中,类似 firstLine 这样的字符串是一个对象。作为对象,它包含方法,即为操作它而定义的函数。下面我们来看看可以对 firstLine 执行哪些操作。

>>> type(firstLine)

>>> dir(firstLine)

['__add__', '__class__', '__contains__', '__delattr__',

'__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__',

'__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__',

'__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__',

'__new__', '__reduce__', '__reduce_ex__',

'__repr__', '__rmod__', '__rmul__', '__setattr__',

'__str__', 'capitalize', 'center', 'count', 'decode',

'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum',

'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper',

'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex',

'rjust', 'rstrip', 'split', 'splitlines', 'startswith', 'strip',

'swapcase', 'title', 'translate', 'upper', 'zfill']

第 2 页,共 2 页 [1] [2]
站内搜索