python类问题,不是init两边的下划线问题

Traceback (most recent call last):

File "C:/Users/szy/Desktop/python例子/9-3.py", line 24, in
user_1.describe_user()
TypeError: describe_user() takes no arguments (1 given)

代码:

class User(object):
    def __init__(self,first_name,last_name,age,gender):
        self.first_name = first_name
        self.last_name = last_name
        self.age = age
        self.gender = gender

    def describe_user():
        full_name = self.first_name +self.last_name
        print("\nThe user's full name is " + full_name.title() + '.')
        print("The user is " + str(self.age) + "years old.")
        print("The user is a " + self.gender + ".")

    def greet_user():
        if self.gender == 'man':
            print("Hello, Mr " + self.first_name + '!' )
        else:
            print("Hello,Mrs " + self.first_name + '!')
        print(full_name.title())    

user1 = User('smith','tom',34,'men')
user2 = User('Elizabeth','alice',24,'women')
user1.describe_user()
user1.greet_user()
user2.describe_user()
user2.greet_user()

0

1个回答

函数没有SELF
class User(object):
def init(self,first_name,last_name,age,gender):
self.first_name = first_name
self.last_name = last_name
self.age = age
self.gender = gender

def describe_user(self):
    full_name = self.first_name +self.last_name
    print("\nThe user's full name is " + full_name.title() + '.')
    print("The user is " + str(self.age) + "years old.")
    print("The user is a " + self.gender + ".")

def greet_user(self):
    if self.gender == 'man':
        print("Hello, Mr " + self.first_name + '!' )
    else:
        print("Hello,Mrs " + self.first_name + '!')
    print(full_name.title())    

user1 = User('smith','tom',34,'men')
user2 = User('Elizabeth','alice',24,'women')

user1.describe_user()

The user's full name is Smithtom.
The user is 34years old.
The user is a men.

0
qq_29443517
xstdys 谢谢,这么简单的问题没看出来。
大约 2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python类中前面有双下划线的属性
python中 前面双下划线的属性,会保存到 _ClassName__variable 中。所以这里通过 “_LocalProxy__local” 设置的值,后面可以通过 self.__local 来获取。nnIn [66]: class A:n ...: def __init__(self):n ...: self._A__name = 'Abbie'n ...
利用css实现鼠标经过元素,下划线由中间向两边展开
利用css实现鼠标经过元素,下划线由中间向两边展开的效果
【python】详解类class的访问控制:单下划线_与双下划线__(四)
Python中没有访问控制的关键字,例如private、protected等等。但是,在Python编码中,有一些约定来进行访问控制。rnrn1、单下划线”_”rnrnrn在Python中,通过单下划线”“来实现模块级别的私有化,变量除外。一般约定以单下划线”“开头的函数为模块私有的,也就是说”from moduleName import * “将不会引入以单下划线”_”开头的函数。rnrnrn现在有一个模块
css中a标签中去掉下划线注意事项
需求文件 n css中a标签中去掉下划线注意事项 n 对于css中a 标签去掉下划线有一个注意事项代码如下:nnnn<!DOCTYPE html>n<html>n <head>n <meta charset="UTF-8">n <title></title>n &l
python3中带下划线的变量区别
__(双下划线)1.类中变量名前加入了__(双下划线)表示该属性是私有属性,在类的外部,不能直接访问私有属性在python中,解释器其实是将私有变量(__A)名字改成了_类名__A2.变量名如果是类似__XX__,这种变量是特殊变量,可以直接访问的-(单下划线)1.这类变量本质就是普通变量,但是好的编程习惯一般认为它是私有变量,不去直接访问它变量的命名...
python 变量前的 单下划线 双下划线
1.单下划线变量前的单下划线表示表面上私有 n但是其实这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。例子:class convertstrtoint:n _name = "zhangkun333"n __namedede = "zhangkun444"print convertstr
Python中双下划线和单下划线的用途
在学习Python的时候,会不理解为什么在方法(method)前面会加好几个下划线,有时甚至两边都会加。在Python中下划线还具有 private 和 protected 类似的访问权限作用,下面我们具体分析。nnPython主要存在四种命名:n(1)object #公用方法n(2)__object__ #内建方法,用户不要这样定义 n(3)__object #全私有,全保护(...
Python 类继承,两种初始化(init)的区别
class superClass:n def __init__(self):n print("构造基类")nnnclass mysuperClass1(superClass):n def __init__(self):n #superClass.__init__(self) n super().__init__()n print("构造父类1")nnclass mysuperClas
python下划线开头的命名风格与含义
pre最近在学习与使用python的时候经常发现类库中的一些变量或者函数会以下划线开头,我对这样命名的理由和作用很好奇,经过一番查阅资料,我简单了解了一下相关的问题,现在记录下来以备日后查阅。contentn 命名风格n 作用n 样例 单下划线开头n 如果是全局对象,暗示为内部变量/函数,不可直接被import 导入,但是可以通过 module._variableName访问如果是类内变量
python 是否复写父类的init区别
 nn nn - 子类继承父类,如果子类不复写父类的__init__()方法,nn   创建子类对象的时候会自动调用父类__init__()方法。nn - 子类继承父类,如果子类复写了父类的__init__()方法,nn   创建的子类对象的时候不会再调用父类的__init__() 方法。nn - 注意:python要求复写父类的__init__()方法时,需要调用父类的__init__()nn ...
鼠标移动到标题时,出现从中心向两边水平扩展的下划线
n<!doctype html>n<html>n<head>n <meta charset="UTF-8">n <meta name="Generator" content="EditPlus®">n <meta name="Author" content=&
Python:面向对象的魔法方法之 __init__ 方法
魔法方法:在python中,有一些内置好的特定的方法,这些方法在进行特定的操作时会自动被调用,称之为魔法方法,下面介绍几种常见的魔法方法。Python 的类里提供的,两个下划线开始,两个下划线结束的方法,就是魔法方法。nn1.__init__()就是一个魔法方法,通常用来做属性初始化 或 赋值 操作。如果类面没有写__init__方法,Python会自动创建,但是不执行任何操作,如果为了能够在完成...
python学习——类中为什么要定义__init__()方法
学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧。1、不用init()方法定义类 n定义一个矩形的类,目的是求周长和面积。class Rectangle():n def getPeri(self,a,b):n return (a + b)*2n def getArea(self,a,b):n return a*br
python多继承(待完善)
前两天被多继承坑了下,今天写个记录nnnclass B():n def fun(self):n print('B')nnclass C():n def fun(self):n print('C')nnclass D(B,C):n def fun(self):n super(D,self).fun()n print('D')n...
vue init webpack my-project指令时报错问题(一)
n n n 最近在学习vue,在项目基本配置环节中产生各种报错问题,如执行 以下指令:vue init webpack my-project 执行这一指令时已排除github ping不通的原因,但仍然以下报错:vue-cli · Failed to download repo vuejs-templates/webpack: read ECONNRESET这句话的意...
python当父类定义了有参数的__init__方法时
当父类定义了有参数的__init__方法时,子类可以不用再去定义__init__方法,子类对象也可以在定义时传递参数(这与java等有区别)当然也可以这样在子类的__init__方法中加上super().__init__(参数)java中的情况1、当父类没有显式的定义构造方法,则子类继承父类后子类的构造方法随便定义不受父类影响;2、当父类定义了有参的构造方法,则子类继承父类后子类的构造方法在参数方...
解决UITableView下划线左右两边多出来的空白
解决UITableView下划线左右两边多出来的空白的方法
Bug FastJson解析下划线字段问题 _id
今天在使用fastjson 过程中出现无法解析的字段,在查阅资料和源码之后,记录如下:n                                                                                         ——希望再次遇到此问题的人,不用翻遍Google!!!nnn通常情况下,我们使用fastjson 解析方法如下:n1.Obj
关于pyinstaller 出现的一些问题
2019.1.8nn pyinstaller库nn一.安装方法nnpip install pyinstaller 安装好之后就可以使用了。nnnn二.使用方法nn打开cmd命令行 输入 pyinstaller -F 所在目录下的文件nn三.问题nn1.无法识别中文目录nn2.无法识别特殊字符的目录 下划线也不行nn3.安装好的exe文件会全部放在盘符(c,d,e)所在子目录下的dist文件中nn四...
python3中多重继承的问题
本来以为多重继承很简单,但是多看了一些资料后发现还是挺复杂的。 n 如果继承情况简单就还比较好理解,但是如果继承的情况太过于复杂的话,python3 n中会使用拓扑排序的方式来寻找继承的父类。 n有关继承的拓扑排序 n关于这方面看上面的文章就可以了。 n我下面给出除此之外的一些说明nnclass A(object):n def f(self):n print('A')ncl...
Python的类初始化方法__init__的使用说明
rn__init__方法rn如果一个Python方法以双下划线作为开始和结束标志,这表明这是一个特殊的方法,你可以把它理解成Python内置方法,所以自己在自定义方法的时候避免这样定义方法。rnrn对象初始化rn大部分面向对象语言都有一个叫做构造函数的特殊方法,当它被创建的时候就会创建和初始化对象。这里Python和它们有一点点不同,Python有一个构造函数和一个初始化函数。在大部分情况下,构造函数很少能...
关于python的类为什么加init
https://blog.csdn.net/geerniya/article/details/77487941最最简单来说,你不init,类的实例是没有属性的,在类中定义init()方法,方便创建实例的时候,给实例绑定上属性,也方便类中的方法(函数)的定义...
Python中单下划线,双下划线,俩头下划线的区别。
示例>>> n class student(object):n __name = 0n _sex = 'male'n>>> student.__dict__nmappingproxy({'__module__': '__main__', '_student__name': 0, '_sex': 'male', '__dict__': <attribute '__dict__' of
Python中的下划线
Python中的下划线n文章目录Python中的下划线前言单下划线前置后置双下划线前置后置前后置感谢n018.11.25n前言n我发现公司里即便是工作经验一年的程序员依然对Python的私有属性有些迷糊——也就是下划线的问题——拿捏不准要怎么用。我想在此总结一下。nn单下划线n前置n前置单下划线是一种约定,即:认为这个变量或方法是类私有,外界不要调用。在这里,对象认为是“外界”。n示例如下:ncl...
Django进阶操作之下划线的使用
一、双下划线的使用n1 、说明nn在Django中有相当多的操作是通过双下划线与动作连接起来使用,为了以后更加方便的查找和使用,nn2、比较符nnn说明ngt(大于)、lt(小于)、eq(等于)、gte(大于等于)、 lte(小于等于)nnn示例代码nUserInfo.objects.filter(uid__gt=1) # 获取id大于1的值nUserInfo.objec...
python中的private、下划线、类变量
python中的private、下划线、类变量nnnnnn1. python中没有private、protected,但是有个惯例nn官方文档是这么写的:nnn 9.6. Private Variables and Class-local References n “Private” instance variables that cannot be accessed except from ...
python 单下划线与双下划线,以及绝对导入与相对导入
单下划线与双下划线nn在 python 中,会看到 _xx, xx 以及 __xx 这样的变量或者函数名,在这里做一个简要的总结。nn_xx:保护(protected)变量或函数,意思是只有类对象和子类对象能够访问到这些变量,不能用 ‘from module import *’ 导入。当变量或函数是私有的时候,用 _xx 来表示是很好的习惯。; n__xx:私有成员,意思是只有类对象自己能访问,连...
python 里面的单下划线与双下划线的区别
主要存在四种命名1. object # 公用方法n2. __object__ # 内建方法,用户不要这样定义n3. __object # 全私有,全保护n4. _object # 半保护核心风格:避免用下划线作为变量名的开始。因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_object被看作是“私有的”,在模块或类外不可以使
jquery初始化分析
javascript init ready初始化问题
SpringCloud出现的问题
1,当使用euraka注册服务的时候,服务的名字中间不能有下划线”_” n2,当使用springConfig的时候,在springConfig服务注册完,直接访问测试完了之后,当调用的时候,spring.config后面的配置不能放在applciation.yml或者application.properties中,必须放在bootstrap.yml中...
myBatis配置实现数据库字段下划线映射到java对象的驼峰式命名属性
myBatis配置实现数据库字段下划线映射到java对象的驼峰式命名属性。n在mybatisConfig.xml配置文件中添加如下设置:n!--设置启用数据库字段下划线映射到java对象的驼峰式命名属性,默认为false-->n n在mybatis的配置文件里加入如上的配置,就基本不用property进行字段和实体和属性的映射nnn 在进行sql查询和初始化实体时myba
python中的下划线
__(双下划线)1.    类中: 变量名前加入了__(双下划线)表示该属性是私有属性,       类的外部:不能直接访问私有属性在python中,解释器其实是将私有变量(__A)名字改成了_类名__A2.变量名如果是类似__XX__,这种变量是特殊变量,可以直接访问的-(单下划线)1.这类变量本质就是普通变量,但是好的编程习惯一般认为它是私有变量,不去直接访问它...
Python 中的下划线命名规则
目录nn1 变量nn1.1 _xxxnn1.2 __xxxnn1.3 __xxx__nn1.4 xxx_nn1.5nn2 函数和方法nn2.1 受保护方法:小写和一个前导下划线nn2.2 特殊方法:小写和两个前导下划线,两个后置下划线nn3. 类nn4. 模块和包nn5.参考文献nn如何定义python中变量名,函数名,类名以及包名nn1 变量nn1.1 _xxxnn单下划线开头的变量,表明这是一...
Python 中class类,__init__(方法,函数)使用简单讲解
 基本介绍信息展示在注释中,欢迎大家讨论nn1)_init_函数(方法)nn1.1.init函数(方法)支持带参数的类的初始化 ,也可为声明该类的属性 nn1.2.init函数(方法)的第一个参数必须是 self(self为习惯用法,也可以用别的名字),后续参数则可 以自由指定,和定义函数没有任何区别。nnn#encoding=utf-8n# Created by double lin at 20...
python类class中_init_函数以及参数self的简单解释
python函数定义,init初始化函数及self含义
python中的__init__函数重载与覆盖问题
python中的init函数重载与覆盖问题先看一段代码,利用重载特性实现了多个init函数。# coding:utf-8urlHk = 'http://apis.baidu.com/apistore/stockservice/hkstock?stockid=%s&list=1'nurlSh = 'http://apis.baidu.com/apistore/stockservice/stock?st
【python基础】——__init__的self含义
Python中的selfnnnn在Python中的类Class的代码中,常看到函数中的第一个参数,都是self;同时Class中的函数里面,访问对应的变量(读取或者写入),以及调用对应的函数时,都是self.valueName,self.function()的形式。不适用类Class直接编写函数时倒没有主意,一旦编写类,调用其中的函数是老是出现参数或多或少的情况,这时候才回过头来深入看了看sel...
Unity之NGUI常见问题汇总
主要总结一下UIToggle、UIButton、UISprite、NGUI序列帧、ScrollView、Collider等基础知识的常见问题。
python 下划线 _ __ 开头的变量 详解
在python中,我们经常能看到很多变量名以_下划线开头,而且下划线的数量还不一样,那么这些变量的作用到底是什么?nn变量名分类:nnn# 以数字、字母开头: 正常的公有变量名na = 1ndef aa():n passn# 以单下划线开头: 半私有的变量名n_b = 2ndef _bb():n passn# 以双下划线开头: 私有变量名n__c = 3ndef __cc():n ...
当一个实例被创建,__init__()就会被自动调用
屏幕上显示的字符串正是自动调用__init__()方法的结果,当一个实例被创建,__init__()就会被自动调用nn不管这个__int__()是自定义的还是默认的。nnclass FooClass(object):n version=0.1n def __init__(self):n print self.versionna=FooClass()nprint anpri...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链问题 学习python时遇到的问题