类与对象_

# -*- coding: utf-8 -*-
# @Time    : 2021/10/3 11:15
# @Author  : 李新宇
# @FileName: demo1.py
# @Software: PyCharm
'''编程的两大思想:面对过程和面向对象'''

'''类与对象'''


'''创建类'''
class Student:  #Student为类名,由一个或多个单词组成,规范:每个单词的首字母大写,其余小写。
    pass


#Python中国一切皆对象Student是对象吗?内存有空间吗
print(type(Student))
print(id(Student))
print(Student) #<class '__main__.Student'>
# -*- coding: utf-8 -*-
# @Time    : 2021/10/3 12:13
# @Author  : 李新宇
# @FileName: demo2.py
# @Software: PyCharm


class Student:  #Student为类名,由一个或多个单词组成,规范:每个单词的首字母大写,其余小写。
    native_place='吉林' #直接写在类的变量,称为类属性

    def __init__(self,name,age):
        self.name=name  #self.name称为实体属性,进行了一个赋值操作,将局部变量的name的值赋给实体属性
        self.age=age


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

    #静态方法
    @staticmethod
    def method():
        print('我使用了staticmethod进行修饰,所以我是静态方法')


    #类方法
    @classmethod
    def cm(cls):
        print('我使用了classmethod进行修饰,所以我是类方法')




#在类之外定义的称为函数,在类之内定义的称为方法

def drink():
    print('喝水')

# -*- coding: utf-8 -*-
# @Time    : 2021/10/3 12:13
# @Author  : 李新宇
# @FileName: demo2.py
# @Software: PyCharm


class Student:  #Student为类名,由一个或多个单词组成,规范:每个单词的首字母大写,其余小写。
    native_place='吉林' #直接写在类的变量,称为类属性

    def __init__(self,name,age):
        self.name=name  #self.name称为实体属性,进行了一个赋值操作,将局部变量的name的值赋给实体属性
        self.age=age


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

    #静态方法
    @staticmethod
    def method():
        print('我使用了staticmethod进行修饰,所以我是静态方法')


    #类方法
    @classmethod
    def cm(cls):
        print('我使用了classmethod进行修饰,所以我是类方法')




#在类之外定义的称为函数,在类之内定义的称为方法

def drink():
    print('喝水')


#创建Student类的对象

stu1=Student('张三',20)
print(id(stu1))
print(type(stu1))
print(stu1)

print('---------------')

print(id(Student))
print(type(Student))
print(Student)




# -*- coding: utf-8 -*-
# @Time    : 2021/10/3 12:13
# @Author  : 李新宇
# @FileName: demo2.py
# @Software: PyCharm


class Student:  #Student为类名,由一个或多个单词组成,规范:每个单词的首字母大写,其余小写。
    native_place='吉林' #直接写在类的变量,称为类属性

    def __init__(self,name,age):
        self.name=name  #self.name称为实体属性,进行了一个赋值操作,将局部变量的name的值赋给实体属性
        self.age=age


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

    #静态方法
    @staticmethod
    def method():
        print('我使用了staticmethod进行修饰,所以我是静态方法')


    #类方法
    @classmethod
    def cm(cls):
        print('我使用了classmethod进行修饰,所以我是类方法')




#在类之外定义的称为函数,在类之内定义的称为方法

def drink():
    print('喝水')


#创建Student类的对象

stu1=Student('张三',20)
stu1.eat() #对象名.方法名
print(stu1.name)
print(stu1.age)



print('----------')
Student.eat(stu1) #与stu1.eat(),代码功能相同,都是调用Student中的eat方法
                  #类名.方法名(类的对象)-->实际上就是方法定义处的self
# -*- coding: utf-8 -*-
# @Time    : 2021/10/3 12:13
# @Author  : 李新宇
# @FileName: demo2.py
# @Software: PyCharm


class Student:  #Student为类名,由一个或多个单词组成,规范:每个单词的首字母大写,其余小写。

    native_place='吉林' #直接写在类的变量,称为类属性

    def __init__(self,name,age):
        self.name=name  #self.name称为实体属性,进行了一个赋值操作,将局部变量的name的值赋给实体属性
        self.age=age


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

    #静态方法
    @staticmethod
    def method():
        print('我使用了staticmethod进行修饰,所以我是静态方法')


    #类方法
    @classmethod
    def cm(cls):
        print('我使用了classmethod进行修饰,所以我是类方法')




#在类之外定义的称为函数,在类之内定义的称为方法

def drink():
    print('喝水')


#类属性的使用方式

print(Student.native_place)
stu1=Student('张三',20)
stu2=Student('李四',22)
print(stu1.native_place)
print(stu2.native_place)
Student.native_place='天津'
print(stu1.native_place)
print(stu2.native_place)

print('----类方法的使用方式------')
Student.cm()

print('----静态方法的使用方式------')
Student.method()



# -*- coding: utf-8 -*-
# @Time    : 2021/10/3 12:58
# @Author  : 李新宇
# @FileName: demo6.py
# @Software: PyCharm

class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def eat(self):
        print(self.name+'在吃饭')



stu1=Student('张三',20)
stu2=Student('李四',24)
#一个Student类可以创建N多个student类的实例对象,每个实例对象的属性值不同
print(id(stu1))
print(id(stu2))

print('-------为stu2动态的去绑定性别属性------')


stu2.gender='女'
print(stu1.name,stu1.age) #print(stu1.name,stu1.age,gender) NameError: name 'gender' is not defined
print(stu2.name,stu2.age,stu2.gender)

print('-------------')
stu1.eat()
stu2.eat()

def show():
    print('定义在类之外的,称函数')
stu1.show=show()
stu1.show

#stu2.show()#因为stu2并没有绑定show方法


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙黄橘绿时_Eden

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值