Python的类

1、嵌套函数定义:

def  f1():

      print('f1  running……')

      def  f2():

            print('f2  running……')

      f2()

f1()

内部函数只能在内部调用才有用。

2、nonlocal关键字

(1)nonlocal用来声明外层的局部变量。

(2)global用来声明全局变量。

a = 100
def outer():
    b = 10
    def inner():
        nonlocal  b   #声明外部函数的局部变量
        print('inner b:',b)
        b = 20

        global a      #声明全局变量
        a = 1000
    inner()
    print('outer b:',b)
outer()
print('a:',a)

输出:
inner b: 10
outer b: 20
a: 1000

3、对象和类

        

class Student:                      #类名一般首字母大写,多个单词采用驼峰原则
    def __init__(self,name,score):  #self必须位于第一个参数
        self.name = name            #实例属性
        self.score = score          #实例属性
    def say_score(self):            #self必须位于第一个参数  #实例方法
        print('{0}的分数是:{1}'.format(self.name,self.score))
s1 = Student('lucy',100)
s1.say_score()

输出:lucy的分数是:100

4、构造函数__init__:初始化传建好的对象,初始化指的是:“给实例属性赋值”。

def __init__(self,name,score):  #self必须位于第一个参数
        self.name = name
        self.score = score

5、实例方法:

def  方法名(self [,形参列表]):

      函数体

方法的调用格式如下:

      对象.方法名([实参列表])

6、类方法和静态方法

class Student:  #类名一般首字母大写,多个单词采用驼峰原则、
    company = 'SXT'  #类属性
    def __init__(self,name,age):  #self必须位于第一个参数
        self.name = name
        self.age = age
    @classmethod     #类方法
    def printCompany(cls):  #self必须位于第一个参数
        print(cls.company)
Student.printCompany()

class Student2:
    company = 'SXT'  #类属性
    @staticmethod    #静态方法
    def add(a,b):
        print('{0}+{1}={2}'.format(a,b,(a+b)))
        return a+b
Student2.add(20,30)

输出:
SXT
20+30=50

7、__call__方法和可调用对象

定义了__call__方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用。

class SalaryAccount:
    def __call__(self,salary):
        print('算工资啦……')
        yearSalary = salary*12
        daySalary = salary//22.5
        hourSalary = daySalary//8
        return dict(yearSalary = yearSalary,monthSalary= salary,daySalary =daySalary,hourSalary = hourSalary)
s = SalaryAccount()
print(s(30000))

输出:
算工资啦……
{'yearSalary': 360000, 'monthSalary': 30000, 'daySalary': 1333.0, 'hourSalary': 166.0}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值