"""
````面向对象编程是在创造一个世界,是一种编程的思维
面向对象编程的核心是对象二字,对象时特征和技能的结合体。
优点:可扩展性强。
缺点:编程的复杂度要高于面向过程。
````类和对象:
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()