学习python -- 第013天 类与对象

定义

·类

·多个类似事物组成的群体的统称。能够帮助我们快速理解和判断事物的性质

·数据类型
·不同的数据类型属于不同的类
·使用内置函数查看数据类型

·对象
·100、99、520都是int类之下包含的相似的不同个例,这个个例专业数语称为实例或对象

 类的创建

 1 #
 2 # @author:浊浪
 3 # @version:0.1
 4 # @time: 2021/4/14 19:01
 5 # 
 6 class Student:  #  Student为类名 由一个或多个字母组成 每个单词首字母大写,其余小写
 7     native_pace = 'gd'  # 直接写在类的变量,称为类属性
 8 
 9     def __init__(self, name, age):
10         self.name = name  # self.name称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
11         self.age = age
12 
13     # 实例方法,在类之外定义的叫函数,类里面定义的叫方法
14     def eat(self):
15         print('学生在吃饭')
16 
17     # 静态方法
18     @staticmethod
19     def method():
20         print('这是静态方法')
21 
22     # 类方法
23     @classmethod
24     def cm(cls):
25         print('这是类方法')
26 
27 
28 
29 
30 print(id(Student))  #13956056
31 print(type(Student))  # <class 'type'>
32 print(Student)  # <class '__main__.Student'>

对象的创建

1 stul = Student('张三', 23)
2 stul.eat()
3 print(stul.name)
4 print(stul.age)
5 
6 print('------------------------')
7 Student.eat(stul)  # 本行与第2行代码功能相同,都是调用Student中的eat方法
8                    # 类名.方法名(类的对象)-一>实际上就是方法定义处的self

类属性,类方法,静态方法

·类属性:类中方法外的变量称为类属性,被该类的所有对象所共享

1 stu1 = Student('张三', 23)
2 stu2 = Student('李四', 30)
3 print(stu1.native_pace)
4 print(stu2.native_pace)
5 Student.native_pace = 'guangdong'
6 # 都变成了广东
7 print(stu1.native_pace)  # 若只是stu1.native_pace = 'guangdong' 则只会 stu1变成guangdoong
8 print(stu2.native_pace)


·类方法:使用@classmethod修饰的方法,使用类名直接访问的方法

1 print('_________________使用类方法__________________')
2 Student.cm()


·静态方法:使用@staticmethod修饰的主法,使用类名直接访问的方法

1 print('_________________使用静态方法__________________')
2 Student.method()

动态绑定

·Python是动态语言,在创建对象之后,可以动态地绑定属性和方法

1 stu2.gender = ''
2 
3 def show():
4     print('普普通通一函数')
5 
6 stu2.show = show
7 
8 # 动态绑定只会在该对象添加属性或者方法,其他对象不会添加

小结

认清现实,放弃幻想。 细节决定成败,心态放好,认真学习与工作。
原文地址:https://www.cnblogs.com/jyf2018/p/14659758.html