程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL Server 緊縮日記與削減SQL Server 文件年夜小的辦法

SQL Server 緊縮日記與削減SQL Server 文件年夜小的辦法

編輯:MSSQL

SQL Server 緊縮日記與削減SQL Server 文件年夜小的辦法。本站提示廣大學習愛好者:(SQL Server 緊縮日記與削減SQL Server 文件年夜小的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server 緊縮日記與削減SQL Server 文件年夜小的辦法正文




<span >var Animal = new Class({
initialize: function(age){
this.age = age;
}
});
var Cat = new Class({
Extends: Animal,
initialize: function(name, age){
this.parent(age); // calls initalize method of Animal class
this.name = name;
}
});
var myCat = new Cat('Micia', 20);
console.log(myCat.name); //'Micia'.
console.log(myCat.age); // 20.</span>



<span >var Dog = new Class({
Implements: Animal,
setName: function(name){
this.name = name
}
});
var myAnimal = new Dog(20);
console.log(myAnimal.age);
myAnimal.setName('Micia');
console.log(myAnimal.name); // 'Micia'.
</span>

經由過程Extends完成繼續時,須要經由過程挪用parent辦法來挪用父元素的initialize辦法從而繼續父元素的屬性

而經由過程Implements完成繼續時,直接便可以繼續父元素的屬性,這類方法很合適父類不止一個的情形下

別的額定彌補類辦法Implement和extend,這兩個辦法用於擴大曾經界說了的類


<span class="kw2"><span ></span></span><pre name="code" class="javascript"><span >var Animal = new Class({
initialize: function(age){
this.age = age;
}
});
Animal.implement({
setName: function(name){
this.name = name;
}
});
var myAnimal = new Animal(20);
myAnimal.setName('Micia');
console.log(myAnimal.name); //'Micia'</span></pre><span >
<span class="co1"></span></span>

“The main difference between extend and implement is that Implement changes the class's prototype, while Extend creates a copy. This means that if you implement a change into a class all instances of that class will inherit that change instantly, while if you use Extend then all existing instances will remain the same。”

簡略翻譯下:extend和implement的重要差別是,implement轉變了類的prototype屬性,而extend只是新建了一個正本。這意味著假如你經由過程implement對類做了轉變,那將轉變他的一切實例,而經由過程extend轉變類的話,不會轉變在此之前存在的實例。


var Thingy = new Class({
go: function(){
alert('hi');
}
});
var myClass = new Thingy();
myClass.go(); /* alerts 'hi' */
Thingy.implement({
go: function(){
alert('implemented');
}
});
myClass.go(); /* alerts 'implemented' */
Thingy = Thingy.extend({
go: function(){
alert('extended');
}
});
myClass.go(); /* alerts 'implemented'
because extend only affects
new instances. */
��

>>> passage='\tWhen using the Python programming language, one must proceed\n\
... \twith caution. This is because Python is so easy to use, and\n\
... \tcan be so much fun. Failure to follow this warning may lead\n\
... \tto shouts of "WooHoo" or "Yowza".'
>>> print passage
    When using the Python programming language, one must proceed
    with caution. This is because Python is so easy to use, and
    can be so much fun. Failure to follow this warning may lead
    to shouts of "WooHoo" or "Yowza".
>>> passage=r'\tWhen using the Python programming language, one must proceed\n\
... \twith caution. This is because Python is so easy to use, and\n\
... \tcan be so much fun. Failure to follow this warning may lead\n\
... \tto shouts of "WooHoo" or "Yowza".'
>>> print passage
\tWhen using the Python programming language, one must proceed\n\
\twith caution. This is because Python is so easy to use, and\n\
\tcan be so much fun. Failure to follow this warning may lead\n\
\tto shouts of "WooHoo" or "Yowza".

清單 3 中的第一段依照您預期的方法應用了掌握符。該段已具有優越的格局,浏覽異常便利。第二個示例固然也停止了格局化處置,但它援用的是所謂的原始字符串,即沒有運用掌握符的字符串。您一直可以認出原始字符串,由於該字符串的肇端引號的後面有一個 r 字符,它是 raw 的縮寫。

我不懂得您講的有甚麼可取的地方,固然這類辦法可行,但創立一個段落字符串仿佛異常因難。固然必定有更好的辦法。與平常一樣,Python 供給了一種異常簡略的辦法用於創立長字符串,該辦法可保存創立字符串時所應用的格局。這類辦法是應用三個雙引號(或三個單引號)來開端和停止長字符串。在該字符串中,您可使用隨意率性多的單引號和雙引號(拜見清單 4)。
清單 4. 應用三個引號的字符串

>>> passage = """
...     When using the Python programming language, one must proceed
...     with caution. This is because Python is so easy to use, and
...     can be so much fun. Failure to follow this warning may lead
...     to shouts of "WooHoo" or "Yowza".
... """
>>> print passage
        
    When using the Python programming language, one must proceed
    with caution. This is because Python is so easy to use, and
    can be so much fun. Failure to follow this warning may lead
    to shouts of "WooHoo" or "Yowza".

將字符串作為一個對象

假如浏覽了本系列前兩篇文章中的任何一篇文章,那末在您的腦海中會立刻顯現出如許一句話:在 Python 中,一切事物都是對象。到今朝為止,我還沒有觸及到關於 Python 中的字符串的對象特征的成績,然則,與平常一樣,Python 中的字符串就是對象。現實上,字符串對象是 str 類的一個實例。正如您在 摸索 Python,第 2 部門 中看到的,Python 說明器包含一個內置贊助對象(如清單 5 所示),它可以供給關於 str 類的信息。
清單 5. 獲得關於字符串的贊助信息

>>> help(str)
     
Help on class str in module __builtin__:
          
class str(basestring)
| str(object) -> string
| 
| Return a nice string representation of the object.
| If the argument is a string, the return value is the same object.
| 
| Method resolution order:
|   str
|   basestring
|   object
| 
| Methods defined here:
| 
| __add__(...)
|   x.__add__(y) <==> x+y
| 
...

應用單引號、雙引號和三引號語法創立的字符串依然是字符串對象。然則您也能夠應用 str 類結構函數顯式地創立字符串對象,如清單 6 所示。該結構函數可以接收簡略的內置數值類型或字符數據作為參數。兩種辦法都可以將輸出的內容更改成新的字符串對象。
清單 6. 創立字符串

>>> str("Discover python")
'Discover python'
>>> str(12345)
'12345'
>>> str(123.45)
'123.45'
>>> "Wow," + " that " + "was awesome."
'Wow, that was awesome.'
>>> "Wow,"" that ""was Awesome"
'Wow, that was Awesome'
>>> "Wow! "*5
'Wow! Wow! Wow! Wow! Wow! '
>>> sr = str("Hello ")
>>> id(sr)
5560608
>>> sr += "World"
>>> sr
'Hello World'
>>> id(sr)
3708752

清單 6 中的例子也展現了關於 Python 字符串的幾個其他主要方面。第一,經由過程將其他字符串添加在一路,可以創立新的字符串,詳細辦法可使用 + 運算符,或許爽性應用恰當的引號將字符串聯在一路。第二,假如須要反復短字符串來創立長字符串,可使用 * 運算符,將字符串反復必定的次數。我在本文開首說過,在 Python 中,字符串是不變的字符序列, 上例中的最初幾行解釋了這一點,我起首創立一個字符串,然後經由過程添加其他字符串對它停止修正。從對 id 辦法兩次挪用的輸入中可以看出,創立的新字符串對象中保留的是向原字符串中添加文本的成果。

str 類包括年夜量的用於操作字符串的有效辦法。這裡不做逐個引見,您可使用贊助說明器取得有關信息。如今讓我們懂得一下四個有效的函數,並演示其他 str 類辦法的對象。清單 7 演示了 upper、lower、split 和 join 辦法。
清單 7. 字符串辦法

>>> sr = "Discover Python!"
>>> sr.upper()
'DISCOVER PYTHON!'
>>> sr.lower()
'discover python!'
>>> sr = "This is a test!"
>>> sr.split()
['This', 'is', 'a', 'test!']
>>> sr = '0:1:2:3:4:5:6:7:8:9'
>>> sr.split(':')
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> sr=":"
>>> tp = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
>>> sr.join(tp)
'0:1:2:3:4:5:6:7:8:9'

前兩個辦法 upper 和 lower 很輕易懂得。它們只是分離將字符串都轉換成年夜寫字母或小寫字母。split 辦法很有效,由於它可以將一個字符串分紅幾個較小的字符串序列,辦法是將令牌字符(或給定字符序列中的任何字符)用作斷開地位的指導器。所以,第一個 split 辦法示例應用默許的令牌將字符串“This is a test”拆離開,此令牌可所以任何空白字符(這個序列包含空格、制表符和換行符)。第二個 split 辦法演示若何應用分歧的令牌字符(本例中應用的是冒號)將一個字符串分紅一系列字符串。最初的一個例子顯示若何應用 join 辦法,該辦法的感化與 split 辦法相反, 可使多個短字符串序列構成一個長字符串。在本例中,應用冒號將 tuple 包括的由單個字符組成的字符串序列銜接在一路。

將字符串用作字符的容器

在本文的開首部門,我側重強調了 Python 中的字符串是不變的字符序列。本系列的第 2 部門 摸索 Python,第 2 部門 引見了 tuple,它也是一個不變的序列。tuple 經由過程以下方法支撐拜訪序列中的元素:應用索引符號,應用片斷分別序列中的元素,和應用特定的片斷或將分歧的片斷添加在一路來創立新的元組。依據這一情形,您能夠想曉得能否可以將統一技能運用於 Python 字符串。如清單 8 所示,謎底明顯是“可以”。
清單 8. 字符串辦法

>>> sr="0123456789"
>>> sr[0]
'0'
>>> sr[1] + sr[0]  
'10'
>>> sr[4:8]   # Give me elements four through seven, inclusive
'4567'
>>> sr[:-1]   # Give me all elements but the last one
'012345678'
>>> sr[1:12]  # Slice more than you can chew, no problem
'123456789'
>>> sr[:-20]  # Go before the start?
''
>>> sr[12:]   # Go past the end?
''
>>> sr[0] + sr[1:5] + sr[5:9] + sr[9]
'0123456789'
>>> sr[10]
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
IndexError: string index out of range
>>> len(sr)   # Sequences have common methods, like get my length
10

在 Python 中,將字符串作為字符序列停止處置長短常簡略的。您可以取得單個元素,將分歧的元素添加在一路,切出幾個元素,乃至將分歧的片斷添加在一路。停止切片的一個異常有效的特征是,在開端之前或停止以後停止較多切片不會拋出異常,只是響應地以默許方法開端或停止該序列。相反,假如您試圖應用許可規模以外的索引來拜訪單個元素,則會獲得一個異常。這類行動解釋了為何 len 辦法是如斯主要。

字符串:功效壯大的對象

在本文中,我引見了 Python 字符串,它是一種不變的字符序列。在 Python 中,您可使用多個辦法很輕易地創立字符串,個中包含應用單引號、雙引號或更靈巧的方法,即便用一組三個引號。假定 Python 中的每一個事物都是一個對象,您可使用底層的 str 類辦法來取得附加功效或直接應用字符串的序列功效。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved