- 1.
from random import choice
x=choice(['hello,world!',[1,'e','e','e']])
print x.count('e')
choice 函数从序列中随机选出元素给变量赋值,每次执行会有1或3结果。
3
- 2.
def add(x,y):
return x+y
print add(1,2)
print add('Hello,','world!')
def length_message(x):
print "The length of",repr(x),"is",len(x)
x=[1,2,3,4]
y='Hello,world'
length_message(x)
length_message(y)
程序多态性的显著体现。
- 3.
_metaclass_=type#确定使用新式类,不用担心,Python3.0以后旧式类不存在了
class Person:
def setName(self,name):
self.name=name
def getName(self):
return self.name
def greet(self):
print "Hello,world! I'm %s." %self.name
foo=Person()
foo.setName("Anna")
print foo.getName()
foo.greet()
一个简单的类的使用。
Anna
Hello,world! I’m Anna.
- 4.
class Class:
def method(self):
print 'I have a self!'
def function():
print "I don't."
instance=Class()
instance.method()
instance.method=function
instance.method()
self参数事实上正是方法和函数的区别,方法将它们的第一个参数绑定到所属的实例上,普通函数则不会有self参数。
- 5.
class Scrective:
def __No(self):
print 'Bet you can see it'
def Yes(self):
print 'The secret is'
self.__No()
One=Scrective()
Python中并没有真正的私有化支持,这里只是简单的使用’名称变化术‘来提供私有化的作用,函数前加两个下划线”__”表示私有化函数。
>>> One.Yes()
The secret is
Bet you can see it
>>> One.__No()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: Scrective instance has no attribute '__No'
>>> One._Scrective__No()
Bet you can see it
- 6.
_metaclass_=type#确定使用新式类,不用担心,Python3.0以后旧式类不存在了
class Person:
number=0
def init(self):
Person.number+=1
def setName(self,name):
self.name=name
def getName(self):
return self.name
def getNumber(self):
print self.number
def greet(self):
print "Hello,world! I'm %s." %self.name
foo1=Person()
foo2=Person()
foo1.init()
foo1.getNumber()
foo2.init()
foo2.getNumber()
这里的number是可供这个类所有成员访问的变量,用来计算类的成员数量,用init来初始化所有实例。
1
2