#!/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!"