Python进阶二

文章目录

 

函数参数
1.位置传递
2.名称传递

def f(a,b):
f(1,2)
f(b=2,a=1) 

3.可选参数传递(可选参数必须放在最后)
def f(a,b=1) ✔
def f(b=1,a) ❌
4.可变参数:函数可以接收不确定总数的参数变量
∗ *∗ 接收元组 f(n, *a)
∗∗ **∗∗接受字典 f(n, **a)

 

 

 

局部变量和全局变量
1.局部变量可与全局变量重名
2.局部变量函数调用时生效,函数运算结束后失效
3.局部变量为组合数据类型(列表,字典,集合)且未创建,等同于全局变量

a = 1
def f():
    global a #此时不能赋值,即global a=9 错误
    a +=10 
ls =['a','b']
def f():
    ls.append('c')

f() 
print(ls)
['a', 'b', 'c']

 

面向对象OOP
计算三款产品的原始售价和实际售价之和

复制代码
class Product:
    def __init__(self,name):
        self.name = name
        self.label = 0
        self.real = 0

a = Product('电脑')
b = Product('打印机')
c = Product('投影仪')
a.label,a.real = 10000, 8000
b.label,b.real = 2000, 1000
c.label,c.real = 1500, 900

s1,s2 = 0, 0
for i in (a,b,c):
    s1 += i.label
    s2 += i.real

print(s1,s2)
复制代码

 

类构建
类名使用大写字母组合,如ClassName BasicAuto

 

 

类描述通过 类名.__doc__来访问

class DemoClass:
    "This is a demo for Python class"
    pass

print(DemoClass.__doc__)

 

类对象:类定义完后,默认生成一个类对象;类对象是type类的实例,表达为type类型

复制代码
class DemoClass:
    "This is a demo for Python class"
    print('hello')

print(DemoClass.__doc__)
print(type(DemoClass))
hello
This is a demo for Python class
<class 'type'>
复制代码

类定义即执行,不需要调用

class DemoClass:
    "This is a demo for Python class"
    print('hello')
    
hello

 

实例对象不同于类对象,实例对象是python类的最常用使用方式

复制代码
class DemoClass:
    "This is a demo for Python class"
    print('hello')

a = DemoClass()

print(type(DemoClass))
print(type(a))
hello
<class 'type'>
<class '__main__.DemoClass'>
复制代码

 

构造函数:init() l类实例化时使用的函数

class DemoClass:
def __init__(self,name):
    print(name)

a = DemoClass('老王')
b = DemoClass('老李')
posted @ 2019-12-18 14:58  蓝子娃娃  阅读(188)  评论(0)    收藏  举报
编辑推荐:
· tomcat为什么假死了
· 聊一聊 Linux 上对函数进行 hook 的两种方式
· C# 锁机制全景与高效实践:从 Monitor 到 .NET 9 全新 Lock
· 一则复杂 SQL 改写后有感
· golang中写个字符串遍历谁不会?且看我如何提升 50 倍
阅读排行:
· 突发,CSDN 崩了!程序员们开始慌了?
· 完成微博外链备案,微博中直接可以打开园子的链接
· C# WinForms 实现打印监听组件
· C#实现欧姆龙 HostLink 通讯协议库
· 一个基于 .NET 开源、模块化 AI 图像生成 Web 用户界面
点击右上角即可分享
微信分享提示