面向对象
C语言是没有的,面向对象:面向过程
类别 对象 对象之间的交互,这就是面向对象的思想
__main__ 在运行程序时,是从当前文件开始
在Python中如何表示类别,对象如何产生
类别是由属性和方法(函数)组成的,函数往往表示一个动态
class Dog:
def __init__(self,n,s,a):#类里有这样固定的函数(方法):self对象内存
self.name=n
self.sex=s
self.age=a
def play(self):
print("正在玩...")
def eat(self):
print("正在吃...")
dh=Dog("小花","母",5)#dog()Python产生具有多个块内存的对象,当类名括号时一定会调用__init__方法
print(dh)#输出结果:<__main__.dog object at 0x000001D00CFC1908>
print(dh.__dict__)#输出结果:{'age': 5, 'name': '小花', 'sex': '母'}
对象交互指的是调用对象的方法就是交互
class Dog:
def __init__(self,n,s,a):
self.name=n
self.sex=s
self.age=a
def play(self,content):
print("正在玩...",content)
def eat(self,things):
print("正在吃",things)
return "吃饱了"
dh=Dog("大黄","母",2)
#对象交互指的是调用对象的方法就是交互。
#方法调用的格式:对象名.方法名()
dh.play("球")#调用大黄对象的play方法
res=dh.eat("鸡肉")
print(res)
#输出结果:
正在玩... 球
正在吃 鸡肉
吃饱了
交互
class Dog:
def __init__(self,n,s,a):
self.name=n
self.sex=s
self.age=a
def play(self,content):
print("正在玩...",content)
def eat(self,things):
print("正在吃",things)
return "吃饱了"
dh=Dog("大黄","母",2)
dh.play("球")
res=dh.eat("鸡肉")
print(res)
#交互
class Person:
def __init__(self,n,s,a):
self.name=n;
self.sex=s
self.age=a
def play(self,c):
d=Dog('大黄',"公狗",3)
d.play(c)
p=Person("张三","男",20)
p.play("球")
print(p.__dict__)
#输出结果:{'age': 20, 'sex': '男', 'name': '张三'}
print(Person.__dict__)
#输出结果:{'play': <function Person.play at 0x00000211BDAC36A8>, '__init__': <function Person.__init__ at 0x00000211BDAC3620>, '__module__': '__main__', '__doc__': None, '__weakref__': <attribute '__weakref__' of 'Person' objects>, '__dict__': <attribute '__dict__' of 'Person' objects>}
print(Person.__name__)
#输出结果:Person
print(Person.__module__)
#输出结果:__main__
print(Person.__bases__)
#输出结果:(<class 'object'>,)
总结一下~
__dict__:类的属性
__doc__:类的文档字符串
__name__:类名
__module__:类定义所在的模块
__bases__:类的所有父类构成元素
在d盘有个hello.txt文件,利用python把内容读取到当前程序里
#coding=UTF-8
file=open("d:/111/hello.txt",encoding="UTF-8")
#open是一个函数
#UTF-8支持中文
lines=file.readlines()
print(lines)
file.close()
把[aa,bb,cc]写到d:/111/a.txt
#mode="w+"是写,mode="r+"是读,open函数默认是读
file1=open("d:/111/a.txt",mode="w+")
for line in ["aa","bb","cc"]:
file1.write(line+"\n")
file1.close()