Python语法(类的定义和调用)
程序员文章站
2022-06-12 11:58:40
从零开始学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
推荐阅读
-
[python] 在 python2和3中关于类继承的 super方法简要说明
-
Python的类(class)和实例(Instance)如何操作使用
-
PowerShell中简单的自定义函数和调用函数例子
-
Python语法(类的定义和调用)
-
python自定义类并使用的方法
-
python简单的函数定义和用法实例
-
python中面向对象_类_对象的概念与定义
-
python调用matlab的m自定义函数方法
-
Python 自定义元类的两种写法
-
C#_Excel数据读取与写入_自定义解析封装类_支持设置标题行位置&使用excel表达式收集数据&单元格映射&标题映射&模板文件的参数数据替换(第二版-增加深度读取和更新功能)