第七天

一、嵌套函数

在函数内部定义的函数,在函数外部无法调用内部函数

def nameprint(isChinesename,name,familyname):
    def printname(a,b):
        print('{0},{1}'.format(a,b))
    if isChinesename:
        printname(familyname,name)
    else:
        printname(name,familyname)
nameprint(True,'Hua','Li')

二 、面向对象

1、python支持面向过程、面向对象、函数式编程等多种编程范式。
2、面向对象的思维:设计一个事物,会思考“车怎么设计”,而不是“按步骤怎么造车。”复杂问题从问题中找名词。
3、解决简单问题使用面向过程。
4、解决复杂问题:宏观上使用面向对象
初始化创建好的对象,初始化指是:“给实例属性赋值”

可以进一步说一个python对象包含如下部分:

1、id(识别码)

2、type(对象类型)

3、value(对象的值)

(1)属性 (2)方法

三、类的定义

1、定义:对象比作“饼干”,类为制作饼干的‘模具‘’,类将行为和状态打包在一起
2、格式:
class 类名:
类体
类名符合标识符准则,首字母要大写

四、实例属性:

从属于实例对象的属性
1、一般在_init_()方法中:self.实例属性名=初始值
2、在本类的其他实例方法中,通过self进行访问: self.实例属性名
3、创建实例对象后,通过实例对象访问:
obj01.实例属性名=值

五、实例方法

定义:从属于实例对象的方法
def 方法名(self,[,形参列表]):
函数体
调用格式:
对象,方法名([实参列表])

六、类属性

从属于类对象的属性

class Student:
    company='SXT'      #类属性
    count=0           #类属性
    def __init__(self,name,score):
        self.name=name
        self.score=score                #实例属性
        Student.count+=1
    def say_score(self):
        print("My name is ",self.name)
        print("My score is ",self.score)      #实例方法
s1=Student('Lily',89)      #s1实例对象
s1.say_score()
print('一共创建了{0}个对象'.format(Student.count))

七、类方法

从属于类对象的方法
@classmethod
def 类方法名(cls,[,形参列表]):
函数体
cls必须有,指的是“类对象”本身
调用格式:类名.类方法名(参数列表)

class Student:
    company="SXT"
    @classmethod
    def printCompany(cls):
        print(cls.company)
Student.printCompany()

八、静态方法

与“类对象”无关的方法
通过装饰器@staticmethod 调用
格式:
@staticmethod
def 静态方法名(参数列表)
函数体
调用方式:
类名.静态方法名(参数列表)

九 __del__方法(析构函数)和垃圾回收机制

用于实现对象销毁时所需操作,例如释放对象占用资源
当对象没有被引用时,删除所调用对象的方法

十 __call__方法和可调用对象

定义__call__方法的对象,即该对象可以像函数一样被调用

class salaryAccoount:
    def __call__(self,salary):
        yearsalary=salary*12
        monthsalary=salary
        daysalary=salary/27.5
        return dict(yearsalary=yearsalary,monthsalary=monthsalary,daysalary=daysalary)
s=salaryAccoount()
print(s(5000))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值