Python语法(类的定义和调用)
程序员文章站
2023-08-23 12:36:02
从零开始学Python Day05~面向对象本文是上一篇文章的后续,详情点击该链接类的定义和调用class student: #构造方法 def __init__(self,name,score): self.name = name self.score = score def data(self): print("姓名: ",self.name," 年龄: ",self.score)s = student('刘伯温',19)...
Python从零开始学 Day05~面向对象
本文是上一篇文章的后续,详情点击该链接
类的定义和调用
class student:
#构造方法
def __init__(self,name,score):
self.name = name
self.score = score
def data(self):
print("姓名: ",self.name," 年龄: ",self.score)
s = student('刘伯温',19)
s.data()
self好比C++,Java里面的this
其他操作:
dir(obj)可以获得对象的所有属性、方法
obj.__dict__ 对象的属性字典
pass 空语句
isinstance(对象,类型) 判断“对象”是不是“指定类型”
静态方法
“静态方法”和在模块中定义普通函数没有区别,只不过“静态方法”放到了“类的名字空间里面”,需要通过“类调用”。
@staticmethod
class student:
#构造方法
def __init__(self,name,score):
self.name = name
self.score = score
def data(self):
print("姓名: ",self.name," 年龄: ",self.score)
@staticmethod
def show():
print("hello 我是静态方法")
s = student('刘伯温',19)
s.data()
student.show()
析构函数
和C++里面的析构函数差不多
class student:
def __init__(self):
print("我是构造函数~")
def __del__(self):
print("我是析构函数~")
print("程序运行中")
s = student()
i = input("随便输入")
__call__方法和可调用对象(计算工资案例)
class SalaryAccount:
def __call__(self, salary):
yearSalary = salary * 12
daySalary = salary // 30
hourSalary = daySalary // 8
return dict(monthSalary=salary,yearSalary=yearSalary,daySalary=daySalary ,hourSalary=hourSalary)
s = SalaryAccount()
print(s(3000))
方法的动态性
class User:
def fun(self):
print("我要去运动")
def funS():
print("我要吃大餐")
User.fun = funS()
u = User()
u.fun
方法的私有公有性
通常我们约定,两个下划线开头的属性是私有的(private)。其他为公有的(public)。
class Student:
def show(self): #公有方法
print("我是公有方法")
def __li(self): #私有方法
print("我是私有方法")
S = Student()
S.show()
@property装饰器
@property 可以将一个方法的调用方式发成“属性调用”
class Student:
@property
def number(self):
return 6666
s = Student()
print(s.number)
Get,Set方法
class Student:
def __init__(self,score):
self.score = score
def __init__(self):
pass
@property
def score(self): #如同get
return self.score
def score(self,score): #如同set
self.score = score
s = Student()
s.score(7)
print(s.score)
继承
class Animal:
def ani(self):
print("这是个动物")
class Cat(Animal):
def ca(self):
print("我是个猫咪")
C = Cat()
C.ani()
object根类
dir()查看对象属性
class Student:
def __init__(self,score):
self.score = score
def show(self):
print("学生成绩是: ",self.score)
obj = object()
print(dir(obj))
S = Student(19)
print(dir(S))
多重继承
class Cat:
def catrun(self):
print("小猫在跑")
class Dog:
def dogrun(self):
print("小狗在跑")
class Animal(Cat,Dog):
def __init__(self):
print("都是动物")
super().catrun()#super获得类方法
A = Animal()
A.dogrun()
A.catrun()
【图片来自网络】
【图片来自网络】
【图片来自网络】
本文地址:https://blog.csdn.net/qq_41424688/article/details/107091786
上一篇: 复习一下sql server的差异备份
下一篇: 本地系统服务例程:Nt和Zw系列函数