【从零学Python_1.5】自定义函数和类

网友投稿 234 2022-11-28

【从零学Python_1.5】自定义函数和类

函数格式:

def  函数名 ( 参数 ) :        函数体

# 自定义函数def func(a, b): return a + b# 调用函数func(1, 2)

函数参数:

参数类型:

可变类型参数:在函数内部对传入参数的修改会影响到外部变量。不可变类型参数:在函数内部对传入参数的修改不会影响到外部变量。

def func1(num): num * 10num1 = 10func1(num1)print(num1) # 10def func2(lst): lst[0] *= 10lst1 = [10]func2(lst1)print(lst1[0]) # 100

默认参数:

设置默认参数时,​​必选参数在前​​​,​​默认参数在后​​

def func3(num1, num2=10): print(num1 + num2)func3(1, 2) # 3func3(1) # 11

可变参数:

可变参数/不定长参数,可以输入任意个参数,在函数内作为元组Tuple使用

def func4(*nums): sum = 0 for num in nums: sum += num return sumprint(func4(1, 2, 3)) # 6print(func4(1, 2, 3, 4)) # 10

关键字参数:

指定参数名传参,不一定按固定顺序

def func5(name, age): print(name, age) func5(age=18, name="XiaoMing")

函数返回值:

函数都有返回值,默认返回None

匿名函数:

Lambda表达式

func6 = lambda a, b: a + bprint(func6(1, 2)) # 3

类格式:

class 类名(基类):

默认自动继承object类。

class TestClass: name = "Test Class"# 实例化test = TestClass()print(test.name)

类的属性:

公有属性:在类中和类外都可以调用,属性默认为公有属性;私有属性:只能在类内调用,属性命名以双下划线"__"开始;内置属性:系统自带属性,以双下划线开头,且以上下划线结尾。

类的函数:

公有函数:可以在类内调用,也可以外部通过实例调用,函数默认为公有函数;私有函数:只能在类内调用,函数命名以双下划线"__"开始;类函数:可以在外部通过类名或实例调用,被classmethod函数调用,或使用@classmethod修饰;静态函数:可以类内调用,也可以在外部通过类名或实例调用,被staticmethod函数调用,或使用@staticmethod修饰,不需要self语句。

class TestClass: publicname = "PublicName" __privatename = "PrivateName" def testfunc1(self): print(self.publicname) def testfunc2(self): print(self.__privatename) def __testfunc3(self): print(self.publicname) def __testfunc4(self): print(self.__privatename) def testfunc55(self): print(self.publicname) testfunc5 = classmethod(testfunc55) @classmethod def testfunc6(cls): print(cls.publicname) def testfunc77(): print("static func") testfunc7 = staticmethod(testfunc77) @staticmethod def testfunc8(): print("static func") testfunc7() testfunc8()# 实例调用testclass = TestClass()print(testclass.publicname)testclass.testfunc1()testclass.testfunc2()testclass.testfunc5()testclass.testfunc6()testclass.testfunc7()testclass.testfunc8()# 类名调用TestClass.testfunc5()TestClass.testfunc6()TestClass.testfunc7()TestClass.testfunc8()

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java SpringBoot自动装配原理详解及源码注释
下一篇:jitter的关键术语和参数
相关文章

 发表评论

暂时没有评论,来抢沙发吧~