Python中的类和对象

1、两大编程思想

面向过程与面向对象

2、类和对象的创建

 

 Python中一切皆对象

 不用实例化居然有内容,有空间。。

class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
    pass

#Python中一切皆对象,Student是对象吗?内存有开控件吗?
print(id(Student))#44451256   有内存空间
print(type(Student))#<class 'type'>
print(Student)#<class '__main__.Student'>

类属性,实体属性,类方法,实例方法,静态方法

class Student:
    native_place='吉林' #直接写在类里的变量,称为类属性
    def __init__(self,name,age):
        self.name=name #self.name称为实体属性,进行了赋值的操作,将局部变量的name的值赋给了实例属性
        self.age=age

    #实例方法
    def eat(self):
        print('学生在吃饭!')

    #类方法
    @classmethod
    def cm(cls):
        print('类方法cm!!!!!')

    #静态方法  其中不允许写self
    @staticmethod
    def sm():
        print('静态方法staticmethod')


#类之外定义的称为函数,类之内定义的称为方法
def drink():
    print('喝水')

实例对象和类对象

#创建Student类对象
stu1=Student('张三',20)
print(id(stu1))#18259472与0x01169E10对应
print(type(stu1))#<class '__main__.Student'>
print(stu1)#<__main__.Student object at 0x01169E10>

print('-----------------------------')
#类对象
print(id(Student))#47793592
print(type(Student))#<class 'type'>
print(Student)#<class '__main__.Student'>

两种调用方法:

(1)使用对象名.方法名

(2)使用类名.方法名(对象名)

#创建Student类对象
stu1=Student('张三',20)
stu1.eat()#学生在吃饭!
print(stu1.name)#张三
print(stu1.age)#20

print('----------------------')
#使用类名调用方法
Student.eat(stu1)#学生在吃饭! 33行与28行功能相同,都是调用Student的eat方法

3、类对象与类属性

 实例方法传的是实例对象,类方法传的是类对象

4、类方法与静态方法

类方法使用方式:类名.方法名

静态方法使用方式:类名.方法名

#类属性的使用方式
print(Student.native_place)#类名.属性 #吉林
stu1=Student('张三',20)
stu2=Student('李四',30)
print(stu1.native_place)#吉林
print(stu2.native_place)#吉林
Student.native_place='天津'
print(stu1.native_place)#天津
print(stu2.native_place)#天津

print('------------------类方法的使用方式------------------')
Student.cm()#类方法
Student.sm()#静态方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值