类和对象

"""

面向对象编程的核心是对象二字,对象时特征和技能的结合体。
优点:可扩展性强。

缺点:编程的复杂度要高于面向过程。

````类和对象:
Python中必须先定义类,然后调用类来产生对象。

````Python中类的定义:
类中定义变量使用驼峰体。
class Oldboy():
    school='oldboy'

    def choose_course(self):
        print('is choosing course')

```定义函数,函数只检测语法,不执行代码,但是定义类的时候,
类体代码会在类定义阶段就会执行,并且会产生一个类的名称空间,也就是说累的额本身
其实就是一个容器/名称空间,是用来存放名字的,这是类的用途之一。

```定义对象
调用类即可产生对象,调用类的过程,又称为类的实例化。


"""
class Oldboy():
    school='oldboy'

    def choose_course(self):
        print('is choosing course')

print(Oldboy.__dict__)
print(Oldboy.__dict__['choose_course'])
# {'__module__': '__main__', 'school': 'oldboy', 'choose_course': <function Oldboy.choose_course at 0x0000000009E75B70>, '__dict__': <attribute '__dict__' of 'Oldboy' objects>, '__weakref__': <attribute '__weakref__' of 'Oldboy' objects>, '__doc__': None}
# <function Oldboy.choose_course at 0x0000000009E75B70>


try:
    Oldboy.__dict__['choose_course']()
except Exception as e:
    print('error:',e)
# error: choose_course() missing 1 required positional argument: 'self'


print(Oldboy.__dict__['school'])
print(Oldboy.school)
# oldboy
# oldboy


Oldboy.choose_course(1111)
# is choosing course

print(Oldboy.choose_course)
print(Oldboy.__dict__['choose_course'])
# <function Oldboy.choose_course at 0x0000000009E65B70>
# <function Oldboy.choose_course at 0x0000000009E65B70>

stu1=Oldboy()
#调用 类会得到一个返回值,该返回值就是类的一个具体存在的对象或实例
print(stu1.school)

# 实例化Oldboy产生一个stu2的对象,通过对象调用类中的属性和方法

stu2=Oldboy()
print(stu2.school)
stu2.choose_course()
posted @   大海一个人听  阅读(111)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示