Python函数整理

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

猜你喜欢

转载自blog.csdn.net/qq_28905427/article/details/80703279