#!/usr/bin/python
#encoding=utf-8
##加入if __name__ == "__main__"后,它后面的代码在其它地方引用时,就不执行,从而方便了代码的重用。
def add(x,y):
return x+y
if __name__ == '__main__':
print add(3,4) # 当我在其它地方引用这个add.py时,就不执行print
############ 4大类型 ############
# 无定义类函数,函数间的调用
def func1():
a = 'this a string'
return a
def func2(x):
print x,'ye'
func2(func1()) # 输出'this a string ye'
#
def func1():
a = 1
return a
def func2():
b = 1 + func1()
print b
func1()
func2()
# 类函数下的全局变量调用
class kind():
a = 1
def func1(self):
print kind.a
b = kind()
b.func1()
# 类函数,函数间的调用
class kind():
def func1(self,name):
self.name = name
def func2(self):
print self.name
a = kind()
a.func1('xu')
a.func2()
#
class kind(unittest.TestCase):
def func1(self,username,psw):
self.driver.find_element_by_id("input").send_keys("username")
self.driver.find_element_by_id("input").send_keys("psw")
self.driver.find_element_by_id("input").submit()
def func2(self):
self.func1(u"账户名","12345678")
# 类函数外的函数调用
def func1():
a = 1
return a
class kind():
def func2(self):
print func1()
c = kind()
c.func2()
# unittest框架
def add():
a = 2
return a
class MyTest(unittest.TestCase):
def test_case_B(self):
print add()
if __name__ == '__main__':
unittest.main()
#
def divide(a, b):
return a/b
class MyTest(unittest.TestCase):
def test_divide(self):
self.assertEqual(2, divide(6, 3))
#
class Baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox(profile)
def test_baidu(self):
driver = self.driver
########### 函数调用 ########
###当做函数的参数
def func():
a = 1
return a
def foo(x):
print x
foo(func())
#### 当做函数的返回值
def func():
print 'hello world'
def foo(x):
return func
foo(func())
#####
class ball():
def sn(self,name):
self.name = name
def kick(self):
print 'hello %s ma' % self.name
a=ball()
a.sn('wi')
a.kick()
##
class ball():
def sn(self):
self.name = 'baidu'
def kick(self):
print 'hello %s' % self.name
print 'www.%s.com/' % self.name
a=ball()
a.sn()
a.kick()
######## 函数嵌套
def f1():
def f2():
def f3():
print('from f3')
print('from f2')
f3()
print('from f1')
f2()
f1()
####### 嵌套当做函数内的返回值
x=0
def f1():
x=1
def f2():
# x=2
print x
return f2
f=f1()
f()
#### 当做容器类型的元素
def select():
print('select function')
func_dic={'ab':select,}
func_dic['ab']()
###
def select():
print('select func')
def delete():
print('delete func')
def change():
print('change func')
def add():
print('add func')
while 1:
cmd=raw_input('>>: ').strip()
if not cmd:
continue
if cmd == 'select':
select()
elif cmd == 'delete':
delete()
elif cmd == 'change':
change()
elif cmd == 'add':
add()
else:
print('无效的命令')
######################
class Employee:
'所有员工的基类'
empCount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
self.age = age
Employee.empCount += 1
def displayEmployee(self):
print "Name : ", self.name, ", Salary: ", self.salary
"创建 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)
"创建 Employee 类的第二个对象"
emp2 = Employee("Manni", 5000)
emp1.displayEmployee()
emp2.displayEmployee()
print "Total Employee %d" % Employee.empCount
###########类函数###############
class Person():
def __init__(self,Name,Sex,Age):
self.name=Name
self.sex=Sex
self.age=Age
def talk(self,language):
self.language=language
if self.language == 'English':
print 'saying english well'
else:
print 'I bad'
# per=Person('xu','male','24')
# per.talk('English')
class person_info(Person): #子类
def __init__(self,Name,Sex,Age,Work):
Person.__init__(self,Name,Sex,Age)
self.work =Work
def tell(self):
print '''personl information
Name :%s
Sex : %s
Age : %s
Work: %s
''' % (self.name,self.sex,self.age,self.work)
b=person_info()
b.tell( )
b.talk('English')o
##################类的继承
class Parent: # 定义父类
parentAttr = 100
def __init__(self):
print "调用父类构造函数"
def parentMethod(self):
print '调用父类方法'
def setAttr(self, attr):
Parent.parentAttr = attr
def getAttr(self):
print "父类属性 :", Parent.parentAttr
class Child(Parent): # 定义子类
def __init__(self):
print "调用子类构造方法"
def childMethod(self):
print '调用子类方法'
c = Child() # 实例化子类
c.childMethod() # 调用子类的方法
c.parentMethod() # 调用父类方法
print Parent.parentAttr
c.setAttr(200) # 再次调用父类的方法 - 设置属性值
c.getAttr() # 再次调用父类的方法 - 获取属性值
print Parent.parentAttr
########## 在子类重写父类的方法
class Parent: # 定义父类
def myMethod(self):
print '调用父类方法'
class Child(Parent): # 定义子类
def myMethod(self):
print '调用子类方法'
c = Child() # 子类实例
c.myMethod() # 子类调用重写方法
############# 2个下划线表示私有属性,不能在类的外部使用
class JustCounter:
__secretCount = 0 # 私有变量
publicCount = 0 # 公开变量
def count(self):
self.__secretCount += 1
self.publicCount += 1
print self.__secretCount
counter = JustCounter()
counter.count()
print counter.publicCount
print counter.__secretCount # 报错,实例不能访问私有变量
print counter._JustCounter__secretCount # 可使用该方法
############## 函数在类中的调用 ##########
def add():
# 读取数据,转化为数组、字典、矩阵等。
a = 2
b = 3
# 业务计算逻辑。
return a + b
class MyTest(unittest.TestCase):
def setUp(self):
print('setUp')
def tearDown(self):
print('tear down')
def test_case_B(self):
# 可以返回数组长度作为循环停止的条件,视具体情况定。
print add()
# 用断言对返回的结果做判断。
if __name__ == '__main__':
unittest.main()
########
def add(x):
# 读取数据,转化为数组、字典、矩阵等。
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
# 业务计算逻辑。
return (a[x] + b[x])
class MyTest(unittest.TestCase):
def setUp(self):
print('setUp')
def tearDown(self):
print('tear down')
def test_case_B(self):
# 可以返回数组长度作为循环停止的条件,视具体情况定。
for x in range(0, 4):
print add(x)
# 用断言对返回的结果做判断。
if __name__ == '__main__':
unittest.main()
语句
#!/usr/bin/python
#encoding=utf-8
# while循环 在给定的判断条件为true时执行循环体,否则退出循环体。
# for循环 重复执行语句
# break语句 在语句块执行过程中终止循环,并且跳出整个循环
# continue语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
# pass语句 pass是空语句,是为了保持程序结构的完整性。
# while循环:
numbers = [1,2,3,4,5,6,7]
a = []
b = []
while len(numbers) > 0:
number = numbers.pop()
if (number % 2 != 0):
a.append(number)
else:
b.append(number)
# continue
print a,b # [7, 5, 3, 1] [6, 4, 2]
#
i = 0
while i < 10:
i += 1
if (i % 2 != 0):
continue
print i
#
count = 1
while count < 4:
print "is less than 4"
count = count + 1
else:
print "is not less than 4"
#
for letter in 'Python': # 第一个实例
if letter == 'h':
continue
print '当前字母 :', letter
# for循环
Number = ['1','2','3','4']
for index in range(len(Number)):
print "Num:",Number[index]
#
for letter in 'Python': # 第一个实例
if letter == 'h':
break
print '当前字母 :', letter
#pass
for letter in 'Python':
if letter == 'h':
pass
print '这是 pass 块'
print '当前字母 :', letter
##### 函数调用
def my_abs(x):
if x >= 0:
return x
else:
return -x
###### try
a = 2
try:
a == 2
except IOError:
print "不能调用非公有属性!"
else:
print "ok!"