Python调用类函数而不引用类

2022-05-21 07:12:49 发布

您现在位置:Python中文网/ 问答频道 /正文

c++中下面的代码正在运行,可以在不使用Users().Users(23, "bell")的情况下使其与python一起工作,但与c++Users(23, "bell")类似,请参见下面的代码

#include <iostream>
using namespace std;


class Users
{
public:
    int age;
    string name;

public:
    Users()
    {
        // init default 
        age = 90;
        name = "john";

    }

    Users(int iage, string iname)
    {
        age = iage;
        name = iname;
    }
};


int main()
{
    Users User;
    User.age = 2;
    User.name = "l";

    Users(23, "bell");
    return 0;
}

''

class Users:
    age = None
    name = None 

    def __init__(self):
        self.age = 90
        self.name = "john"

    def Users(age, name):
        self.age = age
        self.name = name

User = Users()
User.age = 2
User.name = "l"

Tags: 代码nameselfagestringinitpublicjohnusersclassintuserbellinameiage
1条回答
网友
1楼 ·

如果不想显式传递默认值,请使用默认参数提供值。你知道吗

class User:  # singular noun
    def __init__(self, age=90, name="john"):
        self.age = age
        self.name = name

user1 = User()            # user.age == 90, user.name == "john"
user2 = User(2, "l")      # user.age == 2, user.name == "l"
user3 = User(40)          # user.age == 40, user.name == "john"
user4 = User(name="bob")  # user.age == 90, user.name == "john"

由于未指定的参数是按严格的从左到右顺序由默认值替换的,因此最后一个示例显示了在使用默认年龄时使用关键字参数显式设置名称。你知道吗